根据 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 识别变更集?
最佳答案
我建议使用 databaseChangeLog 的 logicalFilePath
属性标签。
这使您可以更自由地更改项目的目录结构。 它还可以防止将文件名存储为绝对路径(这在某些情况下可能会发生)。
关于java - Liquibase:如何识别仅更改集的基础 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831032/