2013-07-07 40 views
1

我用liquidbase比較兩個數據庫:如何從liquibase sql diff輸出中刪除DATABASECHANGELOG?

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 .....

輸出SQL?

Thanx。

回答

3

您不能...這些是用於跟蹤應用於數據庫的變更集的基本操作。

您可以通過某種過濾器傳遞SQL,但是最終會得到不代表liquibase通常會執行的操作的SQL。更重要的是,如果您將過濾的SQL應用於您的數據庫,那麼如果您嘗試進行自動遷移(它會認爲變更集未應用),則會導致liquibase的後續問題。

我猜你試圖將SQL顯示給像DBA這樣的第三方?在這種情況下,向他們展示liquibase在做什麼,演示如何記錄每個數據庫更改。將其作爲應用程序的審計功能進行銷售。