подключение нескольких баз данных в рельсах - PullRequest
0 голосов
/ 10 июня 2011

Я хочу, чтобы моя модель Entry использовала несколько баз данных. Когда клиент присоединяется к сети, для этого клиента автоматически создается новая база данных. Другие модели будут использовать ту же базу данных. Возможно ли это в рельсах?

Ответы [ 2 ]

0 голосов
/ 10 июня 2011

Есть ли конкретная архитектурная причина, по которой вам нужно использовать отдельные базы данных? Я мог бы представить себе гораздо более распространенное решение для «многоадресных» приложений, например, это хранить account_id в вашей модели Entry и иметь единую базу данных.

0 голосов
/ 10 июня 2011

Забавно, я только что нашел решение этой проблемы десять минут назад ...

Вот так ...

Прежде всего определите отдельное соединение с базой данных в вашем database.yml

у меня есть

production:
 adapter: mysql
 -etc etc-

Затем я добавил еще одну (для меня у меня есть устаревшая база данных, к которой я хочу подключиться ...)

legacy_production:
  adapter: mysql
  -etc etc-

Повторите это для различных сред, где это уместно

Следующее, что я сделал, было создание нового файла в 'lib' с именем 'legacy_model.rb', и он выглядит очень просто так:Чтобы использовать это, я просто создаю класс / модель и наследую от LegacyModel, как так ...

class User < LegacyModel
  -any validations etc you might want-
end

И вуаля, он получит доступ к устаревшей базе данных вместо той, которую я использую.

Возможно, есть лучшие решения, но мне кажется, что это работает - надеюсь, это поможет!

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