按照文档,我能够让数据库迁移插件在一个现有项目上工作,该项目已经有很多表并且正在生产中运行。我在本地经历了以下过程:
Pulled down latest production database
Source production database to local dev
grails dbm-generate-changelog changelog.groovy
grails dbm-changelog-sync
grails dbm-gorm-diff 2012-06-25-latest.groovy --add
grails dbm-update
我理解为什么我必须在本地执行每一项操作才能达到应用未来变更集的目的。但是,现在我想在我的一台测试服务器上运行我的 2012-06-25-latest.groovy。它已经拥有基于我们生产数据库的最新数据库。
我尝试只运行 dbm-update 但没有同步它无法创建已经存在的表。所以我运行了 dbm-changelog-sync 但是在运行 dbm-update 时它实际上并没有应用最新的文件。
我知道我可以将上下文(标签)添加到更改集并在运行 dbm-update 时指定该上下文,但我想知道这是否是解决此问题的唯一方法,或者我的工作流程是否需要修改;将更改日志应用于测试服务器的最佳方法是什么?