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

e37o9pze  于 5个月前  发布在  Spring
关注(0)|答案(2)|浏览(71)

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

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

字符串
这很好。但是,基于liquibase documentation,我们也应该将其设置为Java属性,我认为应该从application.yaml设置此值,如下所示:

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


spring:
  liquibase:
    parameters:
      duplicateFileMode: WARN


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

jrcvhitl

jrcvhitl1#

这是Liquibase项目中的一个开放问题。

ddarikpa

ddarikpa2#

其他变通方法可能是在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
  }

字符串
编辑:
不适用于liquibase-core的所有版本

  • 不适用于4.17.1,适用于4.20.0

相关问题