Grails中的域类和数据库不同步

时间:2017-01-25 04:48:01

标签: mysql grails gorm

我有这个奇怪的问题。我有一个Grails应用程序,其中缺少一些数据库更改日志文件。因此,数据库与域类不同步。我在域类中做了一些更改。当我尝试运行数据库迁移插件时,它正在创建当前域类和数据库之间的差异,并尝试执行已经运行的所有sql命令,这导致执行我想要执行的命令时出错。

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您可以使用dbm-generate-changelog重新创建所有缺少的更改日志。这将基于当前数据模型创建更改日志。然后,您可以使用dbm-changelog-sync将这些更改日志标记为EXECUTED(将填充DATABASECHANGELOG表)。一旦DATABASECHANGELOG表与当前数据模型同步,您就可以使用dbm-gorm-diff来确保您没有遗漏任何其他数据模型更改。

https://grails-plugins.github.io/grails-database-migration/1.4.0/ref/Maintenance%20Scripts/dbm-changelog-sync.html

注意:我的回答是假设您使用的是Grails 2.x和数据库迁移插件1.4.x,但我相信Grails 3.x中的流程类似于数据库迁移插件2.x或3.x。