在液化库中,数据库表中有3列,它们唯一地标识变更集,并指示变更集是否已执行。
各栏如下:
当Liquibase执行databaseChangeLog时,它按顺序读取changeSets,并对每个表检查“databasechangelog”表,以查看id/author/filename的组合是否已经运行。
我在自动部署的上下文中使用液化库,因此我的变更集的文件不断变化。因此,相同的变化集一次又一次地执行,这是不想要的行为。
是否有方法从组合中排除文件名,即变更集的唯一标识符?我基本上想让液化公司只使用ID和作者。
谢谢
致以亲切的问候,
托拜厄斯
发布于 2017-05-19 14:04:50
我认为您所需要做的就是编辑changelog,使其具有logicalFilePath属性集。下面是一个例子:
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"
logicalFilePath="changelog.xml">
...
</databaseChangeLog>如果有必要,还可以在单个变更集中设置logicalFilePath属性。
在这方面也有一些很好的论坛文章:http://forum.liquibase.org/topic/i-need-to-ignore-the-filename-in-the-processing-to-see-if-a-change-set-has-already-been-applied
https://stackoverflow.com/questions/44061247
复制相似问题