我发现liquibase使用更改日志文件的完整路径来计算校验和。
此行为限制修改更改日志文件名,并尝试在重命名文件后再次重新应用更改集。
有没有办法配置liquibase只使用changelog id 计算cuecksum?
请提供宝贵的意见。
答案 0 :(得分:12)
使用databaseChangeLog
标记的属性logicalFilePath
。
答案 1 :(得分:3)
上游开发者建议使用logicalFilePath
并建议在DATABASECHANGELOG.FILENAME
列上执行直接更新:
用完整路径修复损坏的条目。
如果您设置哈希值DATABASECHANGELOG.MD5SUM
ot null
,则会在下一次LiquiBase运行时触发哈希重新计算。您应该这样做,因为哈希算法在计算时使用所有复合ID部分。
答案 2 :(得分:1)
我遇到了同样的问题,并在下面找到了解决方案。
如果您使用的是liquibase sql format
,则只需将其放在下面的sql文件中即可:
--liquibase formatted sql logicalFilePath:<relative SQL file path like(liquibase/changes.sql)>
如果您使用的是liquibase xml format
,则只需将下面的内容放在xml文件中即可:
<databaseChangeLog logicalFilePath=relative XML file path like(liquibase/changes.xml)" ...>
...
</databalseChangeLog>
在添加以上logicalFilePath
属性之后,运行liquibase update
命令。
它会将relative file path
放在表logicalFilePath
的{{1}}列的FILENAME
列中的任何内容中