連續交付生產中的關係數據庫(和模式)遷移模式是什麼?連續交付生產數據遷移模式
在許多傳統開發中,DBA在當前發佈週期中創建的許多較小腳本中安排了一個大型遷移腳本。但是在CD中,開發人員可能想要將更改推向生產,而不是等待用其他腳本編譯它們。
我知道在rails-migration上,但對我來說,使用原始sql腳本看起來更合理。
我也見過像flyway這樣的工具來管理遷移,但我還沒有看到很多人在生產中使用它們。這就是爲什麼我想知道這裏常見的做法。
連續交付生產中的關係數據庫(和模式)遷移模式是什麼?連續交付生產數據遷移模式
在許多傳統開發中,DBA在當前發佈週期中創建的許多較小腳本中安排了一個大型遷移腳本。但是在CD中,開發人員可能想要將更改推向生產,而不是等待用其他腳本編譯它們。
我知道在rails-migration上,但對我來說,使用原始sql腳本看起來更合理。
我也見過像flyway這樣的工具來管理遷移,但我還沒有看到很多人在生產中使用它們。這就是爲什麼我想知道這裏常見的做法。
Flyway適用於連續交付/部署。許多客戶在所有環境中使用它,包括生產。
跨環境級聯DB遷移的一個最重要的事情是有一個3個步驟:
步驟1
舊的應用程序代碼與舊的數據庫一起工作。
步驟2
新的應用程序代碼中得到部署,並遷移DB上啓動。此遷移必須向後兼容,以便舊應用程序代碼仍可與新數據庫一起使用。這是必要的,因爲:
此步驟可能涉及兼容性視圖和觸發器以執行此項工作。
步驟3
更改已證明的工作之後,應用程序代碼的下一個版本得到 必要DB遷移部署在一起以丟棄任何剩餘的過時的(來自步驟1)和兼容性(從步驟2)結構。
我意識到這是一箇舊的帖子,但我想知道你是否有任何想法應該如何打包。正如我所看到的,你將得到4個不同的包: 1:新代碼,配置爲使用新的數據庫(但也是舊的), 2:Db遷移, 3:新代碼,修復爲不再支持舊db 通常,所有這些更改都已完成,並且提交到源代碼控制,觸發構建。您是否知道任何可以幫助分解爲適當的包以發送到部署管道的工具? – 2016-04-18 18:10:03
「新的應用程序代碼得到部署,並在啓動時遷移數據庫。」我的感覺是,遷移作爲部署腳本的一部分運行似乎也是合理的。你看到有什麼困難嗎? – 2016-10-31 19:20:27