Liquibase以CSV以外的格式加载数据

时间:2015-07-18 07:31:40

标签: sql json liquibase

使用Liquibase提供的加载数据选项,可以指定CSV格式的种子数据。有没有办法可以提供一个JSON或XML文件,其中包含Liquibase可以理解的数据?

用例是我们正在尝试输入一些分层的样本数据。例如。类别 - 子类别关系,需要为所有相关类别输入父ID。如果有办法避免在种子数据中包含ID,请通过例如JSON。

{
    "MainCat1": ["SubCat11", "SubCat12"],
    "MainCat2": ["SubCat21", "SubCat22"]
}

非常可能不支持此功能(无法让Google帮助我)但有没有办法编写插件或其他功能呢?指向指南(如果有的话)会有所帮助。

注意:这不是以该格式指定更改日志。

1 个答案:

答案 0 :(得分:2)

目前尚未得到支持并且支持它非常困难。主要的困难在于Liquibase被设计为与数据库平台无关,并且设计目标是能够生成执行操作所需的SQL而无需实际执行操作。

在不知道密钥的情况下插入您想要的数据,只生成可以在以后运行的SQL将非常困难,甚至可能是不可能的。我建议更直接地接触作为Liquibase主要开发人员的Nathan。最好的方法可能是通过JIRA bug database for Liquibase

如果您想要实施它,可以先查看LoadDataChange(source in Github)的代码,这是CSV支持当前所在的位置。