Liquibase重复执行sqlFile类型变更触发主键冲突的原因排查
Liquibase 无明确诱因SQL脚本重复执行异常
从运行日志可完整观测到全流程异常行为,具体环节如下:
- 首次正常执行环节
- 触发源为
db/changesets目录下的JSON格式changelog,引用目标SQL路径为sqlFiles/003_insert_roles_to_permissions_assn.sql - 执行完成后成功写入权限关联表数据
- 对应ChangeSet被标记为EXECUTED状态,同时在
DATABASECHANGELOG表中写入完整执行记录
- 触发源为
- 非预期重复执行环节
- 首次执行完成后,Liquibase自动触发由
includeAll扫描规则生成的raw类型ChangeSet - 该ChangeSet指向的SQL文件路径与首次执行的文件完全重合:
db/changesets/sqlFiles/003_insert_roles_to_permissions_assn.sql - 全量重复执行该SQL文件的全部内容
- 首次执行完成后,Liquibase自动触发由
最终因
auth_roles_to_permissions_assn表的主键重复抛出1062 Duplicate entry报错
目前暂未定位到触发该非预期重复执行行为的根本原因。
内容的提问来源于stack exchange,提问作者Ihor M.
相关产品推荐
相关产品推荐

