我有这个奇怪的问题。我有一个Grails应用程序,其中缺少一些数据库更改日志文件。因此,数据库与域类不同步。我在域类中做了一些更改。当我尝试运行数据库迁移插件时,它正在创建当前域类和数据库之间的差异,并尝试执行已经运行的所有sql命令,这导致执行我想要执行的命令时出错。
这个问题有解决方案吗?
答案 0 :(得分:2)
如果我正确理解您的问题,您可以使用dbm-generate-changelog
重新创建所有缺少的更改日志。这将基于当前数据模型创建更改日志。然后,您可以使用dbm-changelog-sync
将这些更改日志标记为EXECUTED(将填充DATABASECHANGELOG表)。一旦DATABASECHANGELOG表与当前数据模型同步,您就可以使用dbm-gorm-diff
来确保您没有遗漏任何其他数据模型更改。
注意:我的回答是假设您使用的是Grails 2.x和数据库迁移插件1.4.x,但我相信Grails 3.x中的流程类似于数据库迁移插件2.x或3.x。