我可以将 CSV 文件作为命令行参数传递给 <Loaddata> Liquibase 吗?如果没有,还有其他方法可以做到吗?



有没有办法从命令行传递TEST.csv值

<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="0">SELECT COUNT(1) FROM tb_mt_data_map;</sqlCheck>
</preConditions>
<loadData encoding="UTF-8"
file= "TEST.csv"
separator=";"
quotchar="'"
relativeToChangelogFile="true"
tableName="tb_mt_data_map">

有没有办法从命令行传递TEST.csv值

您可以使用Liquibase Property Substitution

Liquibase允许动态替换变更日志文件中的属性。我们可以在一个文件中配置多个属性,然后根据需要使用它们。您可以配置";csvFileName";然后在具有语法CCD_ 1的变更集中使用它。

您可以从命令行-DcsvFileName=Test.csv传递属性值,也可以在liquibase.properties文件中配置其值。

csvFileName=Test.csv

然后你可以在你的变更集中使用它,如下所示:

<preConditions onFail="MARK_RAN">
<sqlCheck expectedResult="0">SELECT COUNT(1) FROM tb_mt_data_map;</sqlCheck>
</preConditions>
<loadData encoding="UTF-8"
file= "${csvFileName}"
separator=";"
quotchar="'"
relativeToChangelogFile="true"
tableName="tb_mt_data_map">

有关属性替换的更多详细信息,请查看我在这篇文章上的回答

相关内容

最新更新