2013-07-10 87 views
1

我有一個應用程序使用單個數據庫模式。儘管如此,應用程序還有一個核心(具有其DB對象),並且可以使用插件邏輯(每個插件都有其DB對象)進行擴展。 核心數據庫對象和插件數據庫對象是不同的集合,因爲插件是可選的,可能存在或可能不存在。使用Flyway管理補丁子集

因此,我需要單獨的版本和遷移控制的核心和每個單一的插件。

我想知道是否有某種方式使用Flyway來管理這個單獨的「遷移路徑」。

我唯一能想到的是在相同的單個數據庫模式下創建託管應用程序,許多不同的Flyway元數據表(如schema_version_core,schema_version_plugin1等)並獨立管理每個組件的遷移。

這是可行的嗎?任何更聰明的建議?

非常感謝

回答

0

我強烈建議您將您的DB成模式的,因爲這是真的,他們是什麼:對象管理組。

如果這不是一個選項,你建議的替代方案工作正常。在調用clean時要小心,因爲它會清除整個模式,而不僅僅是一個插件的部分。

0

我目前正在努力解決同樣的問題:由幾個「基本」組件組成的應用程序,它們都可以擁有自己的數據庫對象。

我嘗試了將所有內容放入同一個模式並使用不同的飛橋元表的選項,但這不起作用:當飛路處理時第二個模塊的第二個表格發現模式不是空的(因爲第一個模塊已經遷移了它的數據庫更改),它會停止,因爲flyway現在沒有機會確定數據庫及其遷移的狀態。

同樣使用基線版本並沒有幫助,因爲在那種情況下基線的變化將被滑動以用於下一個模塊......我認爲對於flyway唯一合理的解決方案是使用不同的模式...... 。