我在新的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
中不存在时创建数据库答案 0 :(得分:2)
创建数据库本身是不切实际的,因为它非常特定于供应商,甚至比DDL更能创建表,序列等。您经常需要指定访问规则,存储选项等。
Hibernate将生成并运行schama DDL,但您必须通过创建数据库本身来启动该过程,除了像H2这样的简单数据库。