想通过 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 。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.