加载相对于changelog文件的CSV文件

时间:2014-02-17 09:42:31

标签: csv insert liquibase

我对Liquibase 3.1.1有以下问题:我想在以下项目结构中应用Liquibase:

database
 - v1
   - data
     - example.csv
   - changelog01.xml
   - changelog02.xml
 - v2
   - changelog01.xml
   - changelog02.xml
 - changelog.xml

project
 - moduleA
 - moduleB
   - pom.xml

我尝试在moduleB中使用Liquibase插件,所以我将它添加到pom.xml中。除此之外,我在插件配置中指定了changelog文件的路径。 changelog文件位于direcory数据库中。对于不同的版本,主变更日志文件中包含多个子文件。子文件(例如changelog01.xml)从CSV文件加载数据。

我想指定相对于更改日志文件路径的CSV文件的路径,但以下内容不起作用,因为找不到CSV文件:

<loadData tableName="example" file="v1/data/example.csv" encoding="UTF-8" separator=";">

1 个答案:

答案 0 :(得分:2)

这是在最新版本的Liquibase中解决的。另见:http://blog.liquibase.org/2014/11/liquibase-3-3-0-released.html

  

改进

     

[CORE-549] - loadData的relativeToChangelogFile,loadUpdateData,   SQLFILE

请注意将XML架构位置更新为3.3版本:

<xsi:schemaLocation="
    http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.3.xsd
               ">