liqubase:在没有数据库连接的情况下从changelog xml生成SQL脚本

时间:2018-09-19 16:46:02

标签: sql liquibase generate

我有一个liqubase changelog.xml。它包括一些带有更改的“包含文件”。 例如,创建表的基本脚本和添加表的新脚本。

我可以使用一条包含所有字段的“创建表...”语句获取sql脚本。而且我不想连接到数据库。只需使用liquibase xml文件和jar库。

版本liquibase-3.5.5。

我试图运行以下命令: java -jar liquibase-core-3.5.5.jar --url = offline:mssql?outputLiquibaseSql = true --changeLogFile =“ changelog.xml” --outputFile =“ all.sql” updatesql

changelog.xml:

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog/1.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog/1.9
         http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-1.9.xsd">
    <include file="base.sql" relativeToChangelogFile="true"/>
    <include file="changelog_20180719.xml" relativeToChangelogFile="true"/>
</databaseChangeLog>

但是all.sql仅包含第一个包含的文件(base.sql)中的sql

谢谢

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,您将需要使用“离线”连接URL。以这个最近的问题为例。如果您要针对其他数据库,则URL将不同。 liquibase databasechangelog table in updateSql mode