Spring Boot集成Liquibase时无法检测到db.changelog-master.xml文件的问题求助
Spring Boot集成Liquibase时无法检测到db.changelog-master.xml文件的问题求助
看起来你遇到的问题主要出在配置格式错误和路径配置上,咱们一步步来排查解决:
1. 修正application.yaml中的Liquibase配置格式
你当前的配置里有两个明显的错误:
- YAML配置文件不支持用
=赋值,必须用: classpath:后面多了一个空格,这会导致路径识别异常
正确的配置应该是这样的(注意YAML的缩进规范,子属性要相对于父属性缩进):
liquibase: enabled: true change-log: classpath:/db/changelog/db.changelog-master.xml
2. 确认文件的实际存放路径
检查你的项目结构,确保db.changelog-master.xml确实放在src/main/resources/db/changelog/目录下——Spring Boot默认会从src/main/resources目录加载classpath下的资源,路径一定要对应上。
3. 调整主changelog文件中的子文件引用路径
你在db.changelog-master.xml里设置了relativeToChangelogFile="true",意味着子变更文件的路径是相对于当前主文件的,但你写的是绝对路径格式,这会导致找不到子文件。
把include标签的路径改成相对路径即可:
<include file="changes/a.xml" relativeToChangelogFile="true"/> <include file="changes/b.xml" relativeToChangelogFile="true"/>
做完以上几步后,重启你的Spring Boot应用,应该就能正常加载Liquibase的变更日志文件了。
备注:内容来源于stack exchange,提问作者Sercan Noyan Germiyanoğlu
相关产品推荐
相关产品推荐

