【发布时间】:2011-01-07 09:36:42
【问题描述】:
【问题讨论】:
标签: database grails migration grails-plugin
【问题讨论】:
标签: database grails migration grails-plugin
现在有一个standard Grails database migration plugin 可用。根据this blog post,至少在 liquibase 1.9 版本之后将不再维护 liquibase 插件。
新的数据库迁移插件有built-in functionality在启动时执行更改日志,并支持在Groovy DSL中定义更改,所以它可能就是你要找的。p>
【讨论】:
我使用 Autobase(基于 Liquibase 构建),因为它(上次我检查)允许您在应用启动时自动检查/应用您的迁移。使用 Liquibase 插件,我必须自己在 servlet 初始化代码中执行此操作。这允许您将数据源设置为 dbCreate = none 并让 Autobase 处理使 DB 成形。
它确实意味着您每次向域类添加属性时都需要编写迁移,但我认为这是一件好事,因为它让您考虑底层字段实际上应该是什么而不是让 Hibernate 猜测一下。
我认为一些 Autobase 插件(例如 groovy dsl)正在迁移回 Liquibase 插件,但您需要检查一下。
Autobase 的唯一缺点是缺乏良好的文档。有一些,但不完整。幸运的是,dsl 与 xml Liquibase 标签相同,因此您可以处理大部分内容。
【讨论】:
我使用 liquibase,我不确定 Robert 是否仍在积极维护 Autobase,而 liquibase 提供的 xml 实际上非常类似于 DSL。我认为它还为您的数据库命令提供了一点分离,并且不会使其根深蒂固于启动过程中(有些人可能更喜欢相反)。
【讨论】:
至少从 Grails2.0 开始,database migration plugin 是处理重要数据库更改的事实上的方式。该插件基于 Liquibase 构建,由 Springsource 人员编写 - 始终是质量的标志。我写了一个introduction to the database migration plugin,可能对阅读本文的人有用。
【讨论】:
我听说 Autobase 仍在维护,但考虑到 Grails 数据库迁移插件是由核心团队编写的,并且可能会成为官方支持的插件。
换句话说,鼓励您在选择上述任一插件之前等待 Grails 1.4 --> roadmap。
【讨论】:
是的,我也看到了迁移插件。这很有帮助... http://grails-plugins.github.io/grails-database-migration/
【讨论】: