有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Liquibase:如何识别仅变更集基础ID?

根据liquibase文件:

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

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

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


共 (1) 个答案

  1. # 1 楼答案

    只有在操作源代码并重新编译自己版本的liquibase时

    其实设计很好,只是用错了。 例如,如果您有一个大团队,其中每个团队都在一个单独的liquibase文件中维护其变更集,那么不考虑文件名将是致命的,因为不同的团队可能使用相同的ID

    只需确保调用Liquibase的方式始终相同,并且变更集的标识不会改变