Рельсы используют 2 квартиры БД в одной модели - PullRequest
0 голосов
/ 25 апреля 2018

Как автоматически использовать общие и пользовательские данные в одной модели? Общие данные находятся в CommonDB, а пользовательские данные - в CustomTenantDB. Мое предложение использовать строковые идентификаторы и все данные будут уникальными. Например: 1c - commonDB_id. 1 - customTenantDB_id. Мне нужно установить в модели, если у меня есть идентификатор 1с - пожалуйста, используйте commonDB. Я использую две базы данных, потому что я использую мультитенантность, и некоторые данные передаются всем арендаторам. Я также вижу эту ссылку, и это почти то, что мне нужно, но она не описывает, как сделать это в модели автоматически. Эффективный способ извлечения данных из второй базы данных?

1 Ответ

0 голосов
/ 25 апреля 2018

Одна вещь, которую вам нужно знать, Rails ActiveRecord создает соединение с БД по одному при запуске сервера.Для многократного соединения мы должны переопределить соединение на уровне модели.Существует несколько реализаций, позволяющих сделать это, в вашем случае вы можете создать «обратный вызов» Rails в каждой вашей модели и определить хэш соединения в ней с обратным вызовом, вы можете использовать несколько соединений для моделей и манипулировать им в соответствии с вашими потребностями. Или вы можете использовать gem octopus"https://github.com/thiagopradi/octopus"

Существует также хороший блог, который может вам помочь:

https://medium.com/@primazp/multiple-databases-in-rails-part-1-setup-48f6d207685a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...