首页 > 解决方案 > 仅使用 databasechangelog 表生成 liquibase sql 文件

问题描述

我想从我的 changelog 文件中生成一个 SQL 文件,该文件只包含 databasechangelog 表,并在其中插入数据库的当前状态。在 liquibase 文档中有一篇文章 ( http://www.liquibase.org/2015/07/without-a-connection.html ),其中写到您可以设置outputLiquibaseSql为,data_only但在我的情况下它不起作用。我的属性文件如下所示:

driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath: sqljdbc42.jar
url: offline:mssql?outputLiquibaseSql=data_only
changeLogFile: cl.xml
outputFile: output.sql

但是当我updateSql通过命令行使用它时,它会生成包含所有语句的 SQL 文件,而不仅仅是 databasechangelog 表和 INSERTS。有什么解决办法吗?或者是否有另一种方法可以仅使用 databasechangelog 表 INSERTS 创建 SQL 文件?我正在使用 liquibase 3.5.5。

标签: databasepropertiesliquibasechangelog

解决方案


对我来说,两者outputLiquibaseSql=true兼而有之changeLogSyncSQL。所以属性文件看起来像这样:

driver: com.microsoft.sqlserver.jdbc.SQLServerDriver
classpath: sqljdbc42.jar
url: offline:mssql?outputLiquibaseSql=true
changeLogFile: cl.xml
outputFile: output.sql

然后我liquibase changeLogSyncSQL通过命令行使用。然后 liquibase 生成了一个只有 databasechangelog 表语句的 SQL 文件。


推荐阅读