2015-09-03 24 views
5

Non riesco a trovare alcuna risorsa/guida aggiornata, plug-in o esempio sulla multitenancy di Grails con più database (uno per titolare). Sono attualmente bloccato con https://grails.org/plugin/multi-tenant-single-db e il https://grails.org/plugin/multi-tenant-core obsoleto.Grail multi-tenancy con più database

Come eseguire la commutazione del database che dipende dall'utente loggato?

+1

I plug-in multi-tenant sono obsoleti e utilizzano Hibernate 3. Ho un'applicazione che si trova su Grails 2.3, basata su un singolo plug-in db. Il plug-in DB per tenant è ancora più obsoleto. Hibernate 4 tuttavia ha un supporto integrato per DB per tenant e schema per tenant basato su multi-tenancy. È possibile intercettare le chiamate gorm e utilizzare le trasformazioni AST per ottenere questo risultato. Ma è un lavoro che richiede tempo. Dovrai passare attraverso i documenti di Hibernate. –

+0

@EjazAhmed Grazie! Probabilmente provare l'approccio di Hibernate 4. – renz

+0

@ renz hai trovato una soluzione funzionante per questo? – lifeisfoo

risposta

3

Grails astrae un sacco di elementi di sospensione in modo che vi sia uno sfasamento di impedenza tra Gorm e Hibernate. Uno di questi problemi è il caricamento di più origini dati basate sul titolare. Se si utilizza il tenant per strategia DB, prepararsi per un hard battle. Oltre alla complessità, c'è ancora molto da fare in quanto la manutenzione di DB è piuttosto costosa in questa strategia. La maggior parte delle applicazioni moderne utilizza un approccio Single DB Single Schema e ho utilizzato questo approccio anche in my plugin. Attualmente questo plugin risolve il tenant usando Spring Security. La ragione di questo approccio è stata l'applicazione su cui stavo lavorando e che era un'app SaaS da servire da un singolo dominio. Se devi servire da più domini, c'è bisogno di modifiche minori in questo plugin.

Per quanto riguarda la migrazione a Grails3, è stato rilasciato a marzo 2015 e nel corso di un anno ha subito vari miglioramenti e correzioni di bug. È abbastanza stabile su cui contare e inoltre ha quasi tutti i plugin necessari già portati. Se stai costruendo una nuova applicazione, devi seguire la Grails3. Se hai un'applicazione esistente, puoi considerare la migrazione a grails3.