想通过 Liquibase 维护各个开发机 local 环境数据库结构的一致性,分别尝试了 maven plugin 和添加到 dependency 的方法。
不同工具 update 之后的 DATABASECHANGELOG.FILENAME 是不同的,比如用 mvn liquibase:update 得到 src/main/resources/db/changelog/changelog.sql。
启动 Spring Boot 程序的时候 Liquibase 读到的 changelog 文件路径是 classpath:db/changelog/changelog.sql,这两个路径差异会导致 liquibase.changelog.filter.ShouldRunChangeSetFilter#changeSetsMatch 方法返回 False ,让 Liquibase 认为这个 changeset 没有应用过,试图执行 SQL 语句创建表然后失败。
想问下一般生产实践都是怎么做的?禁止不同方法混用?
maven plugin 和 dependency 的版本都是 4.17.2 。