2017-05-23 199 views
0

我一直在一些項目中工作,並注意到隨着軟件的開發,數據庫通常需要以相同的方式進化。我已經看到這種處理方式不同,但它們看起來都是這樣的:保持數據庫與代碼同步

  • 有一個名爲SCRIPTS_TO_DEPLOY的文件。
  • 當您需要進行任何類型的數據庫更改時,請創建一個名爲$ TASK_ $ DESCRIPTION_ $ NUMBER.sql的文件。把它放在一個預定義的文件夾中。
  • 將$ TASK_ $ DESCRIPTION添加到SCRIPTS_TO_DEPLOY的最後一行
  • 執行一個腳本,該腳本將以正確的順序將所有腳本應用於數據庫。

我有兩個問題。 1)這似乎是個好主意,還是你有更好的建議? 2)每次我開始一個新項目時,都會感覺這樣做有點矯枉過正,爲此構建腳本。有沒有一些工具可以幫助我呢?

幫助將不勝感激。

+0

這是一個很大的挑戰。你的方法似乎合理。 –

+0

爲了安全起見,您還應該有回滾腳本,以便能夠快速恢復到以前的版本(部署問題,僅在產品數據等情況下發生的大錯誤) – JGH

回答

3

在大多數公司和所有大型項目中,人們使用它與您類似。手動。但是,如果你正在尋找自動化,你可以嘗試:

我個人建議的飛行路線。非常容易設置,並按預期工作。

+1

看過他們兩個。 Liquibase可以工作,但Flyway似乎正是我想要的。謝謝! –

0

嘗試使用liquibase這是爲此目的。維護一個liquibase xml文件,它將跟蹤您所需的所有更改並修改您的版本以自動執行liquibase文件

0

我強烈建議你看看Liquibase

這是一種工具,有助於管理和應用數據庫架構更改。

我不知道你在談論什麼樣的軟件,對於基於Java的項目,它可以很容易地集成到其中。