java - Liquibase:如何识别仅更改集的基础 ID?

标签 java liquibase

根据 liquibase 文档:

Each changeSet tag is uniquely identified by the combination of the “id” tag, the “author” tag, and the changelog file classpath name.

这似乎是一个非常糟糕的设计选择。变更集的身份不应与其位置相关联。如果更改日志通过自动应用程序部署运行,则更改集将来自 JAR 文件中的类路径位置。如果我想从命令行手动运行相同的变更集,该位置可能是当前目录。

在这种情况下,liquibase 不会根据其 ID 将变更集识别为相同,而是会尝试应用它两次。 有没有办法改变这种行为并让它仅根据指定的 ID 识别变更集?

最佳答案

我建议使用 databaseChangeLoglogicalFilePath 属性标签。

这使您可以更自由地更改项目的目录结构。 它还可以防止将文件名存储为绝对路径(这在某些情况下可能会发生)。

关于java - Liquibase:如何识别仅更改集的基础 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831032/

相关文章:

Java,字符串到 JTable

java - 在Eclipse中调用它时出现Ant错误

java - 代码在第二个 xml 文件中不起作用

xml - 如何在 Liquibase 中定义一组默认列,def。 PK,def。索引,def。表创建的值?

java - 在 spring boot 应用程序中使用默认和自定义 liquibase 配置

java - 如何使用 jar 文件中的 Liquibase 变更日志

java - Liquibase 未针对 Spring Boot/MySQL 应用程序执行

java - Android (Kotlin) 与非字符串基元类型的双向数据绑定(bind)

relational-database - 如何从 Liquibase 数据库 changelog.xml 文件生成数据库图/ER 图?

java,内存不足错误: Java heap space