2015-09-03 3 views
5

Я не могу найти какой-либо обновленный ресурс/руководство, плагин или пример о многопользовательской работе Grails с несколькими базами данных (по одному на каждого арендатора). Я в настоящее время застрял с https://grails.org/plugin/multi-tenant-single-db и устаревшим https://grails.org/plugin/multi-tenant-core.Grails Multi-Tenancy с несколькими базами данных

Как выполнить коммутацию баз данных, которая зависит от пользователя в системе?

+1

Мультяшные плагины устарели и используют Hibernate 3. У меня есть приложение, которое находится на grails 2.3 на основе одного db-плагина. Плагин DB для каждого арендатора еще более устарел. Hibernate 4, однако, построил поддержку DB для арендатора и схемы на одноуровневую многопользовательскую работу. Вы можете перехватывать вызовы gorm и использовать преобразования AST для этого. Но это трудоемкая работа. Вам придется пройти через Hibernate docs. –

+0

@EjazAhmed Спасибо! Вероятно, попробовал бы подход Hibernate 4. – renz

+0

@renz Вы нашли рабочее решение для этого? – lifeisfoo

ответ

3

Grails рефераты из большого количества предметов спящего режима, поэтому существует несоответствие импеданса между Gorm и Hibernate. Одной из таких проблем является загрузка нескольких источников данных на основе арендатора. Если вы идете арендатора на стратегию БД, будьте готовы к hard battle. Помимо сложностей, существует долгий путь вперед, поскольку обслуживание БД довольно дорого стоит в этой стратегии. В большинстве современных приложений используется подход Single Single Single Schema, и я также использовал этот подход в my plugin. В настоящее время этот плагин разрешает арендатору использовать Spring Security. Причиной такого подхода было приложение, над которым я работал, приложение SaaS для обслуживания из одного домена. Если вам нужно обслуживать несколько доменов, в этом плагине требуется незначительная модификация.

Что касается миграции на grails3, он был выпущен в марте 2015 года и в течение одного года он прошел через различные улучшения и исправления ошибок. Он достаточно стабилен, чтобы полагаться на него, и, кроме того, он уже почти все необходимые плагины уже перенесены. Если вы создаете новое приложение, вы должны пройти путь grails3. Если у вас есть существующее приложение, вы можете перейти на grails3.

Смежные вопросы