无法在 liquibase 的 application.yaml 中设置 duplicateFileMode 属性

Unable to set duplicateFileMode property in application.yaml for liquibase

提问人:Roman Sobo 提问时间:10/16/2023 更新时间:11/22/2023 访问量:88

问:

我有一个 Java 项目,使用 Liquibase 库作为数据库迁移工具。 运行迁移时,我遇到了以下问题: “找到 2 个路径为'db/changelog/db.changelog-master.yaml'的文件” 以及如何解决此问题的建议: “您可以使用 liquibase.searchPath 设置限制搜索路径以删除重复项。或者,如果你知道这些是完全相同的文件,你可以设置 liquibase.duplicateFileMode=WARN。

我能够通过静态块设置属性,例如:

static {
      System.setProperty("liquibase.duplicateFileMode", "WARN");
    }

这很好用。 但是,根据 liquibase 文档,我们也应该将其设置为 Java 属性,我想这个值应该从 application.yaml 中设置,如下所示:

spring:
  liquibase:
    parameters:
      duplicate-file-mode: WARN

spring:
  liquibase:
    parameters:
      duplicateFileMode: WARN

应用程序失败,并出现初始错误: “找到 2 个路径为'db/changelog/db.changelog-master.yaml'的文件”

java spring-boot 参数传递 liquibase application.properties

评论


答:

1赞 Roman Sobo 10/16/2023 #1

这是 Liquibase 项目中的一个悬而未决的问题。 链接关注 https://github.com/liquibase/liquibase/issues/3230

0赞 Maciej Nawrocki 11/22/2023 #2

其他解决方法可能是在 gradle 中应用此 env 变量

我添加了配置:build.gradle.kts

  tasks.withType<Test> {
    environment("LIQUIBASE_DUPLICATE_FILE_MODE", "WARN") // because of bug: https://stackoverflow.com/questions/77301370/unable-to-set-duplicatefilemode-property-in-application-yaml-for-liquibase
  }