如何从liquibase sql diff输出中删除DATABASECHANGELOG?

时间:2013-07-07 08:28:46

标签: liquibase

我使用liquibase来比较两个数据库:

call liquibase --driver=com.mysql.jdbc.Driver ^
  --classpath=../lib/mysql-connector-java-5.1.20-bin.jar ^
  --url="jdbc:mysql://localhost:3306/skryb" ^
  --username=skryb ^
  --password=skryb ^
  --changeLogFile=%Build%.xml ^
  updateSQL > %Build%.sql 2>e2

我该如何避免这样的行:

INSERT INTO {DATABASECHANGELOG {1}}

输出SQL中的

感谢名单。

1 个答案:

答案 0 :(得分:2)

您不能......这些是用于跟踪应用于数据库的更改集的基本操作。

你可以通过某种过滤器传递SQL,但是你最终得到的SQL并不代表liquibase通常会执行的操作。更重要的是,如果您将过滤后的SQL应用于数据库,则在尝试自动迁移时会导致liquibase的后续问题(它会认为变更集未应用)。

我猜你试图将SQL显示给像DBA这样的第三方?在这种情况下,向他们展示liquibase正在做什么,演示如何记录每个数据库更改。将其作为您申请的审计功能出售。