У меня есть стандартное приложение rails, которое использует базу данных mysql через Active Record, а данные загружаются с помощью отдельного процесса синтаксического анализа из довольно большого файла XML.
Все это было хорошо, но теперь мне нужно загружать данные из базы данных Oracle, а не из файла XML.
У меня нет контроля над тем, как выглядит база данных, и мне действительно нужна лишь часть данных, которые она содержит (возможно, один или два столбца из нескольких таблиц). Поэтому я действительно хочу позвонить в базу данных, вернуть данные и поместить данные в соответствующие места в моей существующей, дружественной для Rails базе данных mysql.
Как бы я поступил так? Я слышал, * вы можете (в зависимости от модели) указывать разные базы данных для моделей Rails, но похоже, что они используют их целиком (то есть база данных дружественна Rails). Могу ли я сделать прямые вызовы Oracle? Есть ли процесс, который делает это проще? Может ли Active Record сама справиться с этим?
Пример игрушки:
Если мне нужно узнать цвет, цену и местоположение объекта, то обычно я бы анализировал огромный XML-файл, чтобы получить эту информацию. Теперь, с оракулом, цвет, цена и местоположение находятся в разных таблицах, проиндексированных по некоторому идентификатору (на самом деле таблицы «Объект» не существует). Я хочу собрать всю эту информацию в моей модели Rails.
Редактировать: Похоже, что я слышал о методе ActiveRecord «create_connection» ... и он действительно предполагает, что одна модель сопоставлена с одной таблицей в целевой базе данных, что не соответствует действительности в моем случае.
Редактировать Редактировать: Ах, похоже, я могу ошибаться там. «create_connection» может справиться с моей ситуацией просто отлично (просто нужно, чтобы ORACLE работал в первую очередь, и я точно знаю ... Если кто-то может помочь, вопрос в том, здесь )