我有一个Grails应用程序(Grails 2.4.4),我使用MySQL作为数据库。 当我重新启动服务器(在生产中)时,它会在两个不同的表中创建2列。这些列在域类中不再存在。 当我处于开发模式或在tomcat服务器(Tomcat 8)中部署war文件时,只有在我重启服务器机器时才会发生这种情况。
我的DataSource.groovy看起来像这样:
dataSource {
pooled = true
dbCreate = "update"
driverClassName = "com.mysql.jdbc.Driver"
username = "root"
password = "root"
}
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = false
cache.region.factory_class = 'net.sf.ehcache.hibernate.EhCacheRegionFactory'
}
答案 0 :(得分:1)
我不确定为什么它不一致,但是dbCreate = "update"
会将Hibernate配置为尝试将数据库与域类同步。最好的办法是将其更改为dbCreate = "none"
并使用数据库迁移,这样您就可以完全控制数据库结构中的更改。