【问题标题】:Liquibase executes changeset several times in single Maven buildLiquibase 在单个 Maven 构建中多次执行变更集
【发布时间】:2016-10-05 23:12:21
【问题描述】:

当我在 TeamCity 构建代理上运行简单的 Maven 项目时,我观察到一些奇怪的 Liquibase 行为。

Maven 项目结构:

changelogs/
databaseChangeLog.xml
pom.xml

运行命令:mvn liquibase:update

databaseChangeLogs.xml 包含下一行:<includeAll path="changelogs/"/>

但是构建日志包含重复记录:

liquibase: databaseChangeLog.xml: /home/teamcity/BuildAgent/work/28fe713da351c06d/changelogs/1.xml: ChangeSet /home/teamcity/BuildAgent/work/28fe713da351c06d/changelogs/1.xml ran successfully in 40ms

liquibase: databaseChangeLog.xml:  Custom SQL executed
liquibase: databaseChangeLog.xml: changelogs/1.xml: ChangeSet changelogs/1.xml ran successfully in 36ms

因此,Liquibase 似乎从不同位置两次获取了变更集:从构建代理的构建文件夹和项目的根目录。

有人遇到同样的问题吗? 任何想法如何解决这个问题?

【问题讨论】:

    标签: maven teamcity liquibase


    【解决方案1】:

    Liquibase 有一个设计缺陷,乍一看,我们认为“相同”的更改集是不同的。要绕过这种特殊性,您可以在 databaseChangeLog 标签或每个 changeSet 标签上使用 logicalFilePath 属性。这将为您的更改集添加另一个级别的身份和唯一性。

    【讨论】:

      猜你喜欢
      • 2023-04-02
      • 2017-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      • 2018-03-10
      • 2019-01-14
      相关资源
      最近更新 更多