配置grails以创建数据库(如果它不存在)。

时间:2013-10-20 16:16:23

标签: grails datasource gorm

我在新的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

的数据库时,此错误消失了

我认为dbCreate中的create-drop设置假设创建了db(如果它不存在)。

问题

如何配置设置,以便在MySQL

中不存在时创建数据库

1 个答案:

答案 0 :(得分:2)

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

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