Spring liquibase 在应用程序崩溃时恢复

Spring liquibase recover when application is crashed

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

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

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

你知道如何在脚本中解决这个问题吗?

Liquibase 更改由 2 table 控制,这将在正在更改的架构中:

1) databasechangeloglock_table

2) databasechangelog_table

您的更改未 运行ning,因为数据库变更日志锁 table 设置了 LOCKED 列。您可以在再次启动 server/application 之前手动取消设置。

在执行此操作之前,请务必小心变更集 运行

如果您确定更改集没有 运行,您可以从两个更改日志 table 中删除相关行。