Как удалить DATABASECHANGELOG из вывода liquibase sql diff?

Я использую Liquidbase для сравнения двух баз данных:

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ЛОГ ИЗМЕНЕНИЯ БАЗЫ ДАННЫХ.....

в выходном SQL?

Спасибо.


person Stepan Yakovenko    schedule 07.07.2013    source источник


Ответы (1)


Вы не можете... Это важные операции, используемые для отслеживания наборов изменений, примененных к вашей базе данных.

Вы можете передать SQL через какой-то фильтр, но в итоге вы получите SQL, который не представляет операции, которые обычно выполняет liquibase. Что еще более важно, если вы примените отфильтрованный SQL к своей базе данных, вы вызовете последующие проблемы для liquibase, если попытаетесь выполнить автоматическую миграцию (она будет думать, что набор изменений не применяется).

Я предполагаю, что вы пытаетесь показать SQL третьей стороне, например администратору баз данных? В таком случае покажите им, что делает liquibase, покажите, как записывается каждое изменение в базе данных. Продавайте его как функцию аудита вашего приложения.

person Mark O'Connor    schedule 07.07.2013