如何用 Spring 解锁 Liquibase 锁?
Posted
技术标签:
【中文标题】如何用 Spring 解锁 Liquibase 锁?【英文标题】:How to unlock Liquibase Lock with Spring? 【发布时间】:2021-12-15 18:09:21 【问题描述】:我的服务基于 Spring 2.4.3 并使用 liquibase 4.3.1,使用 Jenkins 部署。 我有下一个问题——liquibase 锁(Kibana 日志):
应用程序运行失败 org.springframework.beans.factory.BeanCreationException:错误 创建在类路径资源中定义的名称为“liquibase”的bean [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: 调用 init 方法失败;嵌套异常是 liquibase.exception.LockException:无法获取更改日志锁。 从 21 年 10 月 29 日下午 3:37 起,我的服务目前已锁定
不幸的是,我无法直接访问 DB 来更新 DATABASECHANGELOCK。 我试过this solution 但没有任何结果.. 如何在不丢失数据库数据的情况下解锁 liquibase? 提前致谢。
【问题讨论】:
这是我们从不使用 liquibase 的原因之一(也永远不会使用),它缺少--force
【参考方案1】:
如果有人感兴趣-我解决这个案子。
我添加实体和 dto - liquibaseLock 和控制器、服务、存储库。 在 build.gradle 中注释 liquibase 实现后,推送并部署此版本,解锁 DB;注释掉 liquibase 并推送和部署)
现在它可以工作了,我已经证明了解决方案)
【讨论】:
以上是关于如何用 Spring 解锁 Liquibase 锁?的主要内容,如果未能解决你的问题,请参考以下文章
确保 spring boot 和 liquibase 接收和处理 SIGTERM