1. 表被锁,项目无法启动,报如下日志
[liquibase.lockservice.StandardLockService:42] Waiting for changelog lock....
解决办法: update databasechangeloglock set locked = false
后重启项目。多为liquibase执行异常、项目在执行liquibase时意外中断。
2. 已运行的changeSet修改后,liquibase检查篡改报错。
Caused by: liquibase.exception.ValidationFailedException: Validation Failed: 8 change sets check sum
解决办法:删除对应的sql操作,及删除databasechangelog
表中对应的记录后重启项目。
3. 网上有些文章说liquibase从低版本升级到高版本md5检查不兼容。
解决办法:在liquibase刚升级到3.0的时候确实存在,但在最新的版本中均修复了这个缺陷,可以放心升级。
4. 多租户支持(schema模式)
解决办法:将bean从SpringLiquibase改成MultiTenantSpringLiquibase
5. 加载配置文件错误
原因之一是:xml的命名空间版本号大于liquibase的jar包版本号
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.8.xsd">
6. Springboot多模块情况下,本地可以正常启动Liquibase,但是打成jar后始终无法执行。
解决办法:需要将Liquibase的依赖,在Liquibase脚本所在对应的模块下加入Liquibase的依赖。
7.特殊符号在xml中需要转义
- &启动报错 需要使用 & 替换
- <> 需要 != 替换
- <> 或其他特殊符号,可以使用 <![CDATA[特殊符号]]>
8.sql语句太长,liquibase 执行sql语句时自动将其中的json语句的格式弄乱
不能将整个sql语句放置一行,需手动换。
关注公众号:熊猫Jay字节之旅,了解更多 AI 技巧 ~