我有一个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
谢谢
答案 0 :(得分:0)
您可以执行此操作,您将需要使用“离线”连接URL。以这个最近的问题为例。如果您要针对其他数据库,则URL将不同。 liquibase databasechangelog table in updateSql mode