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

Liquibase load data in a format other than CSV

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

用例是我们试图放入一些分层的示例数据。例如。 Category - 需要为所有相关类别输入父 id 的子类别关系。如果有办法通过 JSON.

避免在种子数据中包含 ID
{
    "MainCat1": ["SubCat11", "SubCat12"],
    "MainCat2": ["SubCat21", "SubCat22"]
}

很可能不支持此功能(无法让 Google 帮助我)但是有没有办法编写插件或执行此操作的东西?指向指南(如果有)的指针会有所帮助。

注意:这与以该格式指定更改日志无关。

目前不支持此功能,并且很难有力地支持它。主要困难在于 Liquibase 被设计为与数据库平台无关,结合能够生成执行操作所需的 SQL 而无需实际实时操作的设计目标。

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

如果您想尝试实现它,您可以从查看 LoadDataChange class (source in Github) 的代码开始,这是 CSV 支持当前所在的位置.