提问人:Roman Sobo 提问时间:10/16/2023 更新时间:11/22/2023 访问量:88
无法在 liquibase 的 application.yaml 中设置 duplicateFileMode 属性
Unable to set duplicateFileMode property in application.yaml for liquibase
问:
我有一个 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'的文件”
答:
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
}
评论