4

我对 Grails 域类进行了更改并运行

grails db-gorm-diff 2012-11-20-domain-class-change.groovy --add(显然那里有另一个名字)

并从 Liquibase 收到“更改锁定”错误:

Error executing bootstraps: liquibase.exception.LockException: Could not acquire change log lock. Currently locked by computer-name.local […]

因此(似乎很愚蠢)按照处理 Autobase 插件类似问题的老化线程中的建议,我删除了更改日志锁定表中的行:

mysql> delete from DATABASECHANGELOGLOCK;

现在得到这个漂亮的 Liquibase 错误:

Error executing bootstraps: liquibase.exception.DatabaseException: Empty result set, expected one row

这清楚地告诉我,改变这一点为时已晚,我不应该从表中删除该行。

我现在能做些什么呢?

4

3 回答 3

4

插件中有一个脚本 - 使用http://grails-plugins.github.com/grails-database-migration/docs/manual/ref/Maintenance%20Scripts/dbm-release-locks.html

于 2012-11-21T00:16:05.940 回答
3

我在与 Liquibase 相关的一般地方挖掘了更多内容,现在了解到我可以简单地完全删除表格并在启动时重新创建它。这似乎奏效了。

于 2012-11-21T00:11:51.380 回答
2

查看http://forum.liquibase.org/topic/message-regarding-an-empty-result-set-for-databasechangeloglock。您只需将 'locked' 行设置为 1 或完全删除 databasechangelock 表(然后将重新创建)

于 2013-12-18T18:20:13.953 回答