2013-02-25 46 views
0

我正在使用Liquibase 2.0.5。我有以下過程:Liquibase:如何導出自上次導入以來的更改?

  1. 導出Liquibase更改爲XML文件。
  2. 登錄數據庫並運行一些db命令(例如ALTER TABLE ...
  3. 將步驟2中所做的更改導出爲Liquibase更改集。

我的問題是,我該如何做第3步?我使用下面的腳本在所有執行步驟1 ...

/opt/liquibase/liquibase --driver=com.mysql.jdbc.Driver \ 
    --classpath=~/.m2/repository//mysql/mysql-connector-java/5.1.15/mysql-connector-java-5.1.15.jar \ 
    --changeLogFile=~/db.changelog.xml \ 
    --url="jdbc:mysql://localhost:3306/db" \ 
    --username=user \ 
    --password=pass \ 
    generateChangeLog 

回答

5

你不應該做「手動」 ALTER TABLE語句。一旦您使用Liquibase 全部架構更改應該通過它。做手冊ALTER陳述完全擊敗Liquibase的目的。

如果你真的無法避免繞過Liquibase,然後使用diffdiffChangeLog命令查看三角洲(http://www.liquibase.org/manual/command_line

如果你發現自己做的是定期,你應該重新思考爲什麼以及如何使用Liqubiase。

+0

我不確定你在說什麼。假設我的模式和表結構已經就位,我想向表中添加一個新列。鑑於我在使用Liquibase,如果運行SQL「ALTER TABLE」語句不在表格中,那麼正確的方法是什麼? – Dave 2013-02-25 15:32:30

+2

要添加新列,請使用「addColumn」命令創建一個新的changeSet(在更改日誌中)。 Liquibase是管理***和***應用模式遷移的工具。請閱讀教程和手冊。 – 2013-02-25 15:35:56

相關問題