【问题标题】:configure grails to create the database if it doesn't exist.如果数据库不存在,则配置 grails 以创建数据库。
【发布时间】:2013-10-29 01:41:38
【问题描述】:

我在一个新的 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 设置是假设如果数据库不存在则创建它。

问题

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

【问题讨论】:

    标签: grails datasource grails-orm


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,伯特。这就说得通了。我只是想减少一步:)
    • 试试 Burt 自己开发的优秀的数据库迁移插件。这是管理升级期间与数据库模式操作相关的不确定性的好方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    相关资源
    最近更新 更多