Модель One Rails с двумя вариантами базы данных, выбранными при создании экземпляра - PullRequest
0 голосов
/ 15 апреля 2011

Приложение My Rails (назовем его «Mira») будет взаимодействовать с существующим приложением (назовем его «Jira»). Mira будет хранить информацию о Jira и сможет напрямую манипулировать своей базой данных (поскольку у Jira, скажем так, неполный API).

Поскольку я хочу напрямую манипулировать базой данных Jira, имеет смысл иметь модели, представляющие каждую из таблиц Jira, в моем приложении Mira. Таким образом, я могу использовать ActiveRecord для манипулирования им.

Но на самом деле! Есть два Хирас. Промежуточный экземпляр и производственный экземпляр.

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

Было бы очень мило, если бы я мог сделать это, когда я создаю свою модель, возможно, так:

Jira::CustomField.new(:staging)

или что-то в этом роде.

Мысли? Лучшие способы сделать это? Является ли моя цель, как указано, даже возможной?

1 Ответ

2 голосов
/ 15 апреля 2011

Как указано в документации для ActiveRecord :: Base , легко иметь разные объекты модели Rails, подключающиеся к разным базам данных с использованием метода establish_connection.

Однако, если вы хотите один и тот же класс для подключения к нескольким базам данных в зависимости от конфигурации, это будет своего рода болью.Вам нужно использовать ActiveRecord здесь или вы могли бы использовать DataMapper ?Это будет работать лучше в этом сценарии, я думаю.Посмотрите Какое ORM использовать в одном процессе для приложения динамометрических соединений sinatra? для примера

...