Переключение между несколькими базами данных в приложении rails 4
В настоящее время я создаю приложение rails, где мне нужно переключаться между несколькими базами данных. Эти базы данных имеют одинаковые таблицы, но каждая представляет отдельную гостиницу (то есть: hotel1 имеет базу данных1, hotel2 имеет базу данных2 и т. Д.) . Это происходит потому, что каждый клиент является отдельным клиентом для нашего бизнеса. Теперь вот сложная часть: некоторые пользователи могут иметь доступ к более чем одному отелю (скажем, есть менеджер сети, который может видеть статус всех отелей, связанных с этой сетью) . Я видел разные потоки, где rails подключается к нескольким базам данных, но не с количеством баз данных, которые мне нужно реализовать (бизнес растет) . Кроме того, эти базы данных находятся на одном сервере, поэтому я понимаю, что переключение между ними не должно быть ракетостроением.
Что нужно иметь в виду:
- База данных клиента (database1, database2 и т. Д.) Не является базой данных rails.
- База данных каждого клиента имеет одинаковый дизайн таблицы, единственное, что меняется, - это имя базы данных.
- Основная база данных, связанная с приложением rails, имеет только две таблицы (Users, Hotels) + необходимые таблицы для реализации гемов devise, rolify и cancancan.
Большой вопрос: поскольку эти базы данных не являются базами данных rails, и мне нужно выполнять запросы к каждой из них, каков "рельсовый способ" сделать это, позволяющий мне расширять решение в будущем? (добавить больше запросов в будущем) . Должен ли я моделировать эти базы данных без рельсов как Poros в моем приложении? Есть ли шаблон дизайна, который может мне помочь с этим?
1 ответ
Пожалуйста, посмотрите на следующие драгоценные камни квартиры и act_as_tenant. Ваши требования очень похожи на то, что эти драгоценные камни предлагают, кроме того, что некоторые пользователи могут иметь доступ к более чем одному отелю, но я думаю, что все же это достижимо с этими драгоценными камнями