2011-07-29 83 views
2

我們來考慮Flyway常見問題部分中的What is the best strategy for dealing with hot fixes?問題。在這個問題:使用Flyway提供修補程序

  1. 應用程序版本7(和DB 7版)部署在生產
  2. 工作應用版本開始8
  3. DB版本8的開發和部署,在接受測試環境
  4. 錯誤是在生產標識
  5. DB版本7.1開發,並且必須接受測試

當遷徙路線:遷移將b如果在接受測試環境中調用,則會注意到v8已經被執行,因此不需要執行v7.1。

一方面它是有道理的,因爲v7.1可能與v8不兼容,並且不適合Flyway分析。快速失敗是完全可以理解的。

另一方面,將V7.1部署到驗收測試環境的唯一方法是清理數據庫並運行flyway:使用target = v7.1進行遷移,從而丟棄可能已被使用的數據。

有沒有一個功能,我不知道,處理這種情況下,或乾淨+ migrate.target = v7.1唯一的選擇?

回答

1

不僅僅是一個不同的功能,它關乎一個不同的過程。

如果你想保持你的數據在你的受理環境,我會建議數據庫的航運V8的修補程序和實際的變化,則可以V8.1。在部署相應的代碼之前,v8模式的功能可能保持不用。然而,在大多數情況下,這不會造成傷害。

+1

此答案無法解決問題。一般來說,不能完全移動所有最新的遷移,因爲相應的代碼更改不是熱修復程序的一部分。此外,這個答案只是重複Flyway FAQ。 – gnomie

+0

這是我覺得最合適的方式。如果您覺得不適合,請爲此問題提供另一個答案。我一直期待着有機會學習。 –