答案 0 :(得分:13)
现在有standard Grails database migration plugin可用。根据{{3}},至少liquibase插件将不再维持在liquibase 1.9发布之后。
新的数据库迁移插件this blog post在启动时执行更改日志,并支持Groovy DSL中的更改定义,因此它可能正是您所寻找的。 p>
答案 1 :(得分:3)
我使用Autobase(它建立在Liquibase之上),因为它(我上次检查过)允许您在应用启动时自动检查/应用迁移。使用Liquibase插件,我必须自己在servlet初始化代码中执行此操作。这允许您将数据源设置为dbCreate = none
,并让Autobase处理数据库的形状。
意味着每次向域类添加属性时都需要编写迁移,但我认为这是一件好事,因为它会让你思考底层字段应该是什么而不只是让Hibernate猜测它。
我认为一些Autobase插件(例如groovy dsl)正在迁移回Liquibase插件,但你需要检查它。
Autobase的唯一缺点是缺乏良好的文档。有一些,但它不完整。幸运的是,dsl与xml Liquibase标签相同,因此您可以完成大部分工作。
答案 2 :(得分:1)
我使用liquibase,我不确定Robert是否仍在积极维护Autobase,而liquibase提供的xml实际上就像DSL一样。我认为它也会对您的数据库命令进行一些分离,并且不会使其根深蒂固地进入启动过程(有些人可能更喜欢反向)。
答案 3 :(得分:1)
至少从Grails2.0开始,database migration plugin是处理非平凡数据库更改的事实方法。该插件基于Liquibase构建,由Springsource人员撰写 - 始终是质量的标志。我写了一篇introduction to the database migration plugin,可能对读这篇文章的人有用。
答案 4 :(得分:0)
我听说Autobase仍在维护,但认为Grails数据库迁移插件是由核心团队编写的,可能会成为官方支持的插件。
换句话说,鼓励您等待Grails 1.4 - >在选择上述任一插件之前roadmap。
答案 5 :(得分:0)
我也看到了迁移插件。这很有帮助...... {{3P>