使用Liquibase提供的加载数据选项,可以指定CSV格式的种子数据。有没有办法可以提供一个JSON或XML文件,其中包含Liquibase可以理解的数据?
用例是我们正在尝试输入一些分层的样本数据。例如。类别 - 子类别关系,需要为所有相关类别输入父ID。如果有办法避免在种子数据中包含ID,请通过例如JSON。
{
"MainCat1": ["SubCat11", "SubCat12"],
"MainCat2": ["SubCat21", "SubCat22"]
}
非常可能不支持此功能(无法让Google帮助我)但有没有办法编写插件或其他功能呢?指向指南(如果有的话)会有所帮助。
注意:这不是以该格式指定更改日志。
答案 0 :(得分:2)
目前尚未得到支持并且支持它非常困难。主要的困难在于Liquibase被设计为与数据库平台无关,并且设计目标是能够生成执行操作所需的SQL而无需实际执行操作。
在不知道密钥的情况下插入您想要的数据,只生成可以在以后运行的SQL将非常困难,甚至可能是不可能的。我建议更直接地接触作为Liquibase主要开发人员的Nathan。最好的方法可能是通过JIRA bug database for Liquibase。
如果您想要实施它,可以先查看LoadDataChange
类(source in Github)的代码,这是CSV支持当前所在的位置。