2014-11-23 81 views
1

說我有3個提交(每一個新移民加):生成SQL從遷移不落全部

  • V3(添加新列)
  • V2(添加新表)
  • V1

生產數據庫在v1和我的開發數據庫在v3

我想生成一個SQL腳本,它將生產數據庫升級到v3

我知道怎麼做的唯一途徑是(通過檢查v1和運行dbm-rollback),然後結賬v3和運行dbm-update-sql回滾發展數據庫v1

有沒有辦法做到這一點沒有滾動開發數據庫回(或駭客在DATABASECHANGELOG表)?像dbm-update-count-sql 2這會爲最後兩次遷移創建SQL,無論它們是否已在開發中運行。

編輯:無法從開發計算機

回答

0

連接到督促數據庫如果您可以連接到生產數據庫,你會運行liquibase用即updateSQL命令。

+0

無法連接到prod數據庫:( – zoran119 2014-11-24 21:21:02

1

如果您使用updateSQL生成SQL,Liquibase不會更改您指向的數據庫,它只會生成它在正常更新時執行的操作。因此,最簡單的選擇是僅對生產數據庫運行updateSQL以獲取更新它所需的腳本。

如果這不起作用,如果您能夠將DATABASECHANGELOG表備份/恢復到另一個數據庫(即使是空白的數據庫)並運行updateSQL,它也會輸出相同的SQL。

最後,您可以使用"offline mode"在運行updateSQL時使用CSV文件充當DATABASECHANGELOG表。使用空表運行會生成所有更新SQL,但如果僅包含正在生產的文件中的更改,則updateSQL將只輸出更新生產所需的內容。