配置grails以创建数据库(如果它没有';不存在。

配置grails以创建数据库(如果它没有';不存在。,grails,datasource,gorm,Grails,Datasource,Gorm,我在一个新的grails项目上有以下设置: dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" dialect = "org.hibernate.dialect.MySQL5InnoDBDialect" username = "sa" password = "" } environments { development { dataSource

我在一个新的grails项目上有以下设置:

dataSource {
    pooled = true
    driverClassName = "com.mysql.jdbc.Driver"
    dialect = "org.hibernate.dialect.MySQL5InnoDBDialect"
    username = "sa"
    password = ""
}

environments {
    development {
        dataSource {
            dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
            url = "jdbc:mysql://localhost/myapp?useUnicode=yes&zeroDateTimeBehavior=convertToNull&characterEncoding=UTF-8"
            username = "root"
            password = ""
        }
    }
}
当我运行我的应用程序时,它会失败,并出现一个错误:
创建名为“transactionManagerPostProcessor”的bean时出错:

当我手动转到数据库并创建名为
myapp

我认为dbCreate中的
create-drop
设置应该在数据库不存在时创建数据库

问题


我如何配置设置,以便在MySQL中不存在数据库时创建数据库?创建数据库本身是不切实际的,因为它是特定于供应商的,甚至比DDL更适合创建表、序列等。您通常需要指定访问规则、存储选项等


Hibernate将生成并运行schama DDL,但您必须通过创建数据库本身来启动该过程,H2等简单数据库除外。

谢谢,Burt。这是有道理的。我只是想缩短一步:)试试Burt自己的优秀数据库迁移插件。这是管理升级期间与数据库模式操作相关的不确定性的一种很好的方法。