2

我在一个新的 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 = ""
        }
    }
}

当我运行我的应用程序时,它失败并出现错误:Error creating bean with name 'transactionManagerPostProcessor':

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

我认为create-dropdbCreate 中的设置是假设如果它不存在则创建数据库。

问题

如何配置设置以便在 MySQL 中不存在数据库时创建数据库

4

1 回答 1

2

创建数据库本身是不切实际的,因为它非常特定于供应商,甚至比创建表、序列等的 DDL 更重要。您经常需要指定访问规则、存储选项等。

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

于 2013-10-20T16:31:39.203 回答