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

e37o9pze  于 2024-01-06  发布在  Spring
关注(0)|答案(2)|浏览(204)

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

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

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

  1. spring:
  2. liquibase:
  3. parameters:
  4. duplicate-file-mode: WARN


  1. spring:
  2. liquibase:
  3. parameters:
  4. duplicateFileMode: WARN


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

jrcvhitl

jrcvhitl1#

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

ddarikpa

ddarikpa2#

其他变通方法可能是在gradle中应用此env变量
我在build.gradle.kts中添加了配置:

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

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

  • 不适用于4.17.1,适用于4.20.0

相关问题