我們有一個使用Spring/JPA/Hibernate的Web應用程序。目前,我們正在使用SolidBase進行數據庫更改管理,這在管理的部署模型中運行良好 - 但現在我們正在遷移到非託管部署模型,用戶將能夠下載Web應用程序。我們正在爲Web應用程序構建「更新中心」類型功能,並試圖弄清楚我們應該如何應用數據庫更改。Web應用程序的更新中心和數據庫變更管理
理想情況下,我希望應用程序在應用程序啓動時應用任何未決的數據庫更改,我希望這是我們可以在語法上編寫代碼的東西,但我不想重寫Hibernate的SchemaExport功能來執行此操作。
有沒有人有任何建議,模式或最佳實踐來說明我們如何才能在我們的應用程序中最好地實現此功能?
是否有任何更新中心應用程序庫將解決我們的問題(我一直沒能找到一個)?
也許你有一個很好的理由來做到這一點。不過,這是我的兩分錢。如果您要在應用程序啓動期間執行模式更新,則需要爲您的「應用程序/用戶」帳戶數據庫所有者提供訪問權限。這可能會暴露應用程序中的一些安全漏洞。我建議你在應用程序啓動時不要更改數據庫模式。或者至少要關心你使用的DB連接帳戶。 就我個人而言,我會在應用程序之外執行所有數據庫模式更新,即手動 - 但那只是我自己。 –
Nabheet
如果管理應用程序的每個人都碰巧是DBA,那麼這將非常棒 - 問題在於它將是維護應用程序的最終用戶。我們需要將*更新推送到應用程序的能力,很可能應用程序的這些更新的很大一部分都會有相應的模式更改。已經有一個數據用戶和一個模式用戶,模式用戶只能在應用程序啓動時專門用於此任務。 –