0

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

我可以用一个“创建表...”语句获得 sql-script,其中包括所有字段。而且我不想连接到数据库。只需使用 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

更改日志.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

谢谢

4

1 回答 1

0

您可以这样做,您需要使用“离线”连接 URL。以这个最近的问题为例。如果您的目标是不同的数据库,则 URL 会有所不同。updateSql模式下的liquibase databasechangelog表

于 2018-09-19T18:00:54.197 回答