我创建了以下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的原因 . 当然,我可以将所有脚本移动到同一个项目中,但这不是我想要的 .