我创建了以下changelog文件:
<databaseChangeLog
xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.1.xsd"
logicalFilePath="path-ignored"
>
<include file="db/changelog/usermanagement/db.changelog-master.xml"/>
<include file="initial/db.changelog-initial.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>
我的所有文件都有logicalFilePath属性 . 当我使用maven插件更新我的数据库时,通过第一个文件(db / changelog / usermanagement / db.changelog-master.xml)包含的所有更改集在databasechangelog表的filename列中都有一个相对路径 . 第二个文件(initial / db.changelog-initial.xml)包含的所有更改集都具有“路径忽略”作为文件名 .
当我删除所有内容并让服务器进行更新时(我使用的是spring boot),所有更改集的文件名都设置为logicalFilePath值(忽略路径) . 这是我的预期 .
我正在使用liquibase 3.5.3 .
databasechangelog脚本位于不同的项目中 . 这就是为什么我没有为第一个包含的文件将relativeToChangelogFile设置为true的原因 . 当然,我可以将所有脚本移动到同一个项目中,但这不是我想要的 .