我有spring boot应用程序,它使用liquibase定义了数据库迁移。
当我启动应用程序脚本等待500秒并检查应用程序的http状态。当它返回错误代码脚本时杀死应用程序进程并尝试再次启动应用程序。
应用程序有时会在启动时被终止,并且liquibase不会从databasechangeloglock
删除记录。当应用程序下次运行时它等待释放锁定,但它不会发生并且应用程序会一次又一次被杀死。
在日志中,每个应用程序的最后一行是:
liquibase : Waiting for changelog lock....
liquibase : Waiting for changelog lock....
您是否有任何想法如何在脚本内解决此问题?
答案 0 :(得分:3)
Liquibase更改由2个表控制,这些表将位于正在更改的模式中:
您的更改未运行,因为databasechangeloglock表已设置LOCKED列。您可以在再次启动服务器/应用程序之前手动取消设置。
非常小心,在你做这件事之前已经开始运行
如果您确定更改集未运行,则可以从两个更改日志表中删除相关行。