玩玩兒Flyway:資料庫遷移

來源:互聯網
上載者:User

資料庫遷移

在軟體開發中,我們有svn、git這樣的版本管理器幫我們管理原始碼,我們可以很容的查看我們當前代碼的版本,更新新版本代碼、復原到舊版本等等操作。如果我們不使用版本管理器進行原始程式碼控制,維護代碼將是一項十分痛苦的工作。

開發過程中,改變的可能不僅僅是代碼本身,隨著業務需求的改變、技術設計的改變,我們資料庫的schema也可能發生改變,資料庫表中的某些值也可能發生改變。如果資料庫相關的資訊沒有“版本管理”會出現什麼問題呢?


假設我們項目中,有多個dev同時進行開發,在Build Pipeline上,有分為了Dev、CI、Test、Production這麼幾個不同的環境:


當我們需要在修改資料庫schema時,我們不得不手動的在每台機器上去做這樣的修改。這樣很容易導致環境不一致的問題。


所以,RoR原生的支援了資料庫遷移的功能。在Java中,我們也有一些可選的工具。Flyway就是其中挺不錯的一個http://flywaydb.org/


類似Flyway這樣的工具基本原理都非常簡單,資料庫版本的升級都是通過SQL或者Java代碼來完成。

每執行一次升級或者更新,資料庫中就會把這個操作的版本號碼記錄下來。這樣就可以非常容易的判斷出,當前資料庫處於哪個版本。


使用Flyway

Flyway的官方文檔已經做得比較詳細了,大家照著做做,一下就明白了。

Flyway First Step: http://flywaydb.org/getstarted/firststeps/api.html






for Java

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.