2015-09-03 134 views
5

我似乎無法找到任何更新的資源/指南,關於Grails的多租戶使用多個數據庫(每個租戶之一)插件或例子。我目前堅持https://grails.org/plugin/multi-tenant-single-db和過時https://grails.org/plugin/multi-tenant-coreGrails的多租戶與多數據庫

如何執行取決於登錄的用戶數據庫切換?

+1

多租戶插件已經過時,使用Hibernate 3.我有一個應用程序,它是在2.3的grails基於單分貝插件。每個租戶插件的DB更爲過時。然而,Hibernate 4已經構建了支持每個租戶的數據庫和基於租戶的多租戶架構。您可以攔截gorm調用並使用AST轉換來完成此操作。但這是一項耗時的工作。你將不得不通過Hibernate文檔。 –

+0

@EjazAhmed謝謝!可能會嘗試Hibernate 4方法。 – renz

+0

@renz你是否已經找到了解決方案? – lifeisfoo

回答

3

Grails中抽象出了很多的Hibernate的東西,所以有格姆和Hibernate之間的阻抗失配。一個這樣的問題是基於租戶加載多個數據源。如果您按照數據庫戰略進行租戶,請準備hard battle。除了複雜性之外,在這個戰略中DB維護成本非常昂貴,還有很長的路要走。大多數現代應用程序使用Single DB Single Schema方法,我也在my plugin中使用了這種方法。目前這個插件使用Spring Security來解析租戶。這種方法的原因是我正在研究的應用程序是從單個域中提供服務的SaaS應用程序。如果您必須從多個域進行服務,則需要在此插件中進行少量修改。

關於遷移grails3,它在2015年3月和一年以上的週期被釋放,它已經通過各種改進和bug修復了。它足夠穩定,可以依賴,而且幾乎所有必需的插件都已被移植。如果你正在構建一個新的應用程序,你必須走grails3的路。如果你有一個現有的應用程序,你可以考慮遷移到grails3。