Rails 3: как использовать активную запись и монгоид одновременно

Я много читал, что люди рекомендуют использовать nosql вместе с хранилищами данных sql. Например, у вас есть отчеты об аудите или информация журнала в mysql и некоторые потоковые иерархические данные в mongodb.

Можно ли подключить рельсы с активной записью на mysql, а также на монгоид?

Из коробки, похоже, не работает... Есть подсказки? Или это не рекомендуемый подход?


person server info    schedule 23.03.2011    source источник


Ответы (1)


Что ж, для этого вы должны оставить Rails нетронутым, поэтому не исключайте библиотеки, как это обычно предлагается в документации Mongoid. Вам нужно настроить их отдельно, поэтому вам нужны файлы конфигурации database.yml и mongo.yml, и вы должны убедиться, что они оба загружаются.

После этого вы можете включать/отключать AR и Mongoid для каждой модели отдельно.

class User < ActiveRecord::Base
  #this is an AR model
end

class Item
  include Mongoid::Document
  #this is a Mongoid model
end
person Srdjan Pejic    schedule 23.03.2011
comment
Сначала нужно создать mysql, даже если я их не использую... после этого он работает так, как вы описали, спасибо!.... Одна вещь, хотя... после настройки генераторов монгоидных рельсов работают только с документами, означает ли это Я должен генерировать модели для AR вручную? - person server info; 24.03.2011
comment
Я бы сказал да, но стоило бы выяснить, можете ли вы сгенерировать их успешно. Я посмотрю, и вы тоже можете. mongoid.org — хорошая отправная точка. - person Srdjan Pejic; 24.03.2011
comment
Gem Mongoid переопределяет генератор orm в Rails, но вы должны иметь возможность сбросить его, добавив что-то вроде этого в ваш application.rb: config.generators {|g| g.orm :active_record} - person Jesper; 31.08.2013