2014-02-27 12 views
2

我正在尋找一種方法在生產和開發中進行不同的遷移。開發和生產中的飛路遷移

我想用Maven創建一個Spring Web應用程序。 在開發中,我想更新數據庫模式並加載測試數據。 在部署新版本應用程序時的生產中,我只想更改模式並且不加載測試數據。

我的第一個想法是保存架構更新和插入語句到不同的文件夾。

我想每個機構都已經解決了這個問題,並且可以幫助我,非常感謝。

回答

4

基本上,你有兩個選擇:

你可以在你的flyway.locations財產使用您的遷移不同的位置,即:

測試

flyway.locations=sql/structure,sql/test 

生產

flyway.locations=sql/structure 

這樣,您可以將您的測試數據包含在sql/test中lder連續。當然,你必須注意編號。

第二個選項(我更喜歡),根本不包括遷移中的測試數據。

相反,創建您想要的任何測試數據並創建此數據的sql轉儲,這與您的遷移保持獨立。

如果您有一個包含原始測試數據的獨立數據庫(實例,模式,任何),那麼您將每個遷移作爲構建過程的一部分應用於此,效果最佳。然後,此構建作業可以創建始終與當前遷移匹配的轉儲。

在準備測試機器時,首先應用您的遷移,然後加載匹配轉儲的內容。

我認爲這比第一個版本更清潔,尤其是因爲您的測試數據可以使用其他工具(您的應用程序)準備,而且不需要手工編碼。