如何配置liquibase不包括用于计算校验和的文件路径或名称?

时间:2013-11-10 23:10:39

标签: liquibase

我发现liquibase使用更改日志文件的完整路径来计算校验和。

此行为限制修改更改日志文件名,并尝试在重命名文件后再次重新应用更改集。

有没有办法配置liquibase只使用changelog id 计算cuecksum?

请提供宝贵的意见。

3 个答案:

答案 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列中的任何内容中