LINUX.ORG.RU
решено ФорумAdmin

Как лучше сделать?

 ,


0

2

Есть 2 базы данный mysql на разных серверах. Нужно на рельсах написать веб приложение которое одновременно работает с обоими базами данных.

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

★★★★★

Последнее исправление: CYB3R (всего исправлений: 1)

Базы разные или они реплицированы между собой?

Apple-ch ★★
()

Для начала распиши, каким образом данные будут размазаны по двум базам данных. Случаев может быть много разных.

Если половина нужных таблиц в одной базе данных, а другая половина в другой, то тебе надо посоветоваться в Rails-разработчиком. ActiveRecord, DAO и QueryBuilder нормально настраиваются на любое количество баз данных.

resurtm ★★★
()
Ответ на: комментарий от resurtm

Да половина таблиц в одной базе половина в другой.
Желательно сделать без дополнительных телодвижений в рельсах. В базы кроме моего веб приложения еще будут писать другие программы. Репликация подойдет для такого случая?

TDrive ★★★★★
() автор топика
Ответ на: комментарий от TDrive

Тебе нужно отнаследовать от ActiveRecord::Base два класса, и в каждом указать параметры подключения к базе. Соответственно, от этих двух классов уже нужно наследовать реальные модели, данные для которых храняться в этих базах.

Довольно просто и нет никакой магии. Погугли multiple databases in rails.

vladimir-vg ★★
()

Гугли Add second database Rails

А вообще там всё просто делается, просто одни модели будут в одной базе, другие в другой. Как работа с одной базой выглядеть не будет.

Alve ★★★★★
()
Ответ на: комментарий от vladimir-vg

Да думаю то, что нужно. Всем спасибо, буду разбираться.

TDrive ★★★★★
() автор топика

как-то так..

  $config = YAML.load_file(File.join(File.dirname(__FILE__), 'database.yml'))
  class Posts < ActiveRecord::Base
    establish_connection $config['onedb']
  end
Правда я не пробовал хранить ассоциативно связанную информацию в разных БД.. У меня это сделано для экспорта данных (с преобразованием) из одной платформы БД на другую.

special-k ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.