Liquibase <loadData>,其文件相对于脚本文件

amo*_*fis 7 liquibase

在liquibase中,我可以包含相对于当前脚本文件具有路径的文件:

<include file="initialise/data.xml" relativeToChangelogFile="true"/>
Run Code Online (Sandbox Code Playgroud)

在变更集中,我还可以指向一个文件,该文件包含要插入的数据,例如:

<changeSet author="system-init" id="load-Company">
    <loadData tableName="Company" file="liquibase/initialise/Company.csv">
Run Code Online (Sandbox Code Playgroud)

但是,这一次,我需要使用相对于运行liquibase命令的当前目录的路径。是否有可能以某种方式使用脚本相对路径?

gjo*_*ris 7

这是在最新版本的Liquibase中解决的。另请参阅:https : //www.liquibase.org/2014/11/liquibase-3-3-0-released.html

改进之处

[CORE-549] –用于loadData,loadUpdateData,sqlFile的relativeToChangelogFile

注意将您的XML模式位置更新为3.3版本:

<xsi:schemaLocation="
    http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.3.xsd
               ">
Run Code Online (Sandbox Code Playgroud)