2013-03-02 92 views
1

有相當多的關於JPA數據庫模式遷移和各種工具的stackoverflow線程。但是,在爲大型數據庫執行建議的脫機架構遷移時,似乎都沒有考慮服務停機時間可能太長。JPA實時數據庫模式遷移支持工具?

所以這是我的第一個想法:

假設我要重構一個JPA實體分成兩個JPA實體,即。將「卡車」改爲「卡車」和「發動機」(將引擎屬性移動到單獨的實體中)。遷移計劃可能如下所示:

  • 創建兩個新的JPA實體「TruckNew」和「Engine」。
  • 調整訪問「卡車」,「TruckNew」和「發動機」到DAO(或其他):
    • 使用「卡車」作爲後備
    • 運行一個單獨的數據遷移的線程從「卡車轉換實體「到」TruckNew「和」Engine「,從而在後臺執行遷移,而不會停機並對其他應用程序透明。
  • 收拾東西,重命名「TruckNew」到「卡車」

現在的問題:是否有這樣的任務的任何輔助工具?任何JPA提供者的功能至少要處理部分工作?

回答

0

我看到了這個想法,它看起來可能,但不是將數據庫克隆到migration_db的更好方法。使用工具/腳本遷移模式,然後使用新代碼使用單元測試來測試修改。最後,將您的環境指向已更新實體的遷移代碼庫的新安裝配置。

一個缺點是沒有複製到克隆數據庫的事務會丟失,但這也可能使用任何事務數據庫。