2012-01-10 67 views
2

是否有一個好的或推薦的工具來管理DDL和DML遷移?結構和數據的遷移腳本

我的App配置大部分存儲在數據庫中,我希望能夠自由開發和遷移這個,而不僅僅是DDL。對此有何建議?

回答

0

檢查各種工具,我們的解決方案是改進DBUnit以支持遷移腳本。 XML結構作爲輸出允許一個非常好的源代碼管理和跨供應商解決方案(我們與DB2和Oracle一起工作)。

1

Liquibase處理DML以及DDL。 http://liquibase.org/manual/refactoring_commands列出了可用標籤,包括insertData,loadData,deleteData等。

+0

謝謝。最後,我試圖看看Liquibase,它無法從DML提取中排除表或過濾出SELECT查詢。這導致應用程序與OutOfMemory異常失敗。現在是否改變了? – 2012-01-12 10:30:26

+0

我假設你正在談論當你正在做一個數據庫比較/ generateChangeLog?如果您要求輸出數據,您目前無法排除表或部分數據。您可以指定要包含哪些表格,但不能指定「除X以外的所有表格」。 liquibase中的diff/generateChangeLog支持不是數據遷移過程的正常組成部分,因此不要僅僅依靠初始設置作爲使用或不使用liquibase的原因。 – 2012-01-12 15:24:48

+0

您可以使用groovy將大量數據轉儲爲liquibase變更集。看到這個問題的答案:http://stackoverflow.com/questions/8397488/comparing-databases-and-genrating-sql-script-using-liquibase/8408334#8408334 – 2012-01-12 19:30:06

3

Flyway和Liquibase都可以處理DML。

從Flyway的角度來看,Flyway從頭開始構建DDL和DML(配置,參考數據......)。所有DML命令都可以用作遷移寫入普通SQL文件。

對於這兩個框架的更詳細的比較看看這個questioncomparison matrix在Flyway主頁上。