database - 仅使用 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。
解决方案
对我来说,两者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 文件。
推荐阅读
- java - 如何在 testng.xml 文件中查找正在执行的测试数量
- log4net - 使用 AzureAppendBlobAppender 在 Azure blob 中写入文本文件
- java - 已连接:但没有输出
- html - 如何从菜单底部删除 iphone 阴影
- c# - 如何使用 C# 将复杂的 JSON 数组响应转换为简单的 Json
- sql-server - 尝试使用 powershell 使用服务主密钥加密数据库主密钥
- c# - 条目(数据库)已添加
- scala - 从包装的数组scala创建新的数据框
- apache-spark - 如何减少执行 SVD 的火花作业的运行时间
- c# - 在 WindowsIdentity.GetCurrent().Name 中将“\\”替换为“\”