当应用程序崩溃时,Spring Liquibase恢复

我有一个Spring Boot应用程序,该应用程序已使用liquibase定义了数据库迁移.
当我启动应用程序脚本时,请等待500s并检查应用程序的http状态.当它返回错误代码时,脚本将终止应用程序进程并尝试再次启动应用程序.
有时在启动过程中应用程序被杀死,并且liquibase不会从databasechangeloglock中删除记录.当应用程序下次运行时,它会等待释放锁,但不会发生,并且一次又一次地杀死应用程序.

在日志中,每个应用程序的最后几行是:

liquibase    : Waiting for changelog lock....
liquibase    : Waiting for changelog lock....

您对在脚本中解决此问题有任何想法吗?

解决方法:

Liquibase的更改由2个表控制,这些表将在要更改的模式中:

1)databasechangeloglock_table

2)databasechangelog_table

您的更改未运行,因为databasechangeloglock表已设置LOCKED列.您可以在重新启动服务器/应用程序之前手动取消此设置.

在执行此操作之前,请务必小心

如果确定更改集尚未运行,则可以从两个更改日志表中删除relavent行.

上一篇:HTML5 file api读取文件的MD5码工具


下一篇:在Liquibase中自动生成UUID-Mysql MariaDB