sql >> Base de Datos >  >> NoSQL >> MongoDB

Cómo configurar MongoMapper y ActiveRecord en el mismo proyecto de Ruby Rails

Incluya su gema mongo_mapper en su Gemfile. Luego, en los modelos que desea comenzar a migrar lentamente a MongoMapper, simplemente incluya esto en su modelo:

incluir MongoMapper::Documento 

aquí hay un ejemplo de un modelo de editor de Mongo

Class Publisher incluye MongoMapper::Document key:_id, String key:mtd_uniques, Integer key:mtd_demo_uniques, Integer key:archive, Array key:ignore, Booleanend 

Mi modelo de usuario (postgres):

class Usuario  

Lo bueno de esto es que todos sus otros modelos todavía usan ActiveRecord, por lo que puede usar 2 bases de datos diferentes hasta que todo se migre a Mongo. Este es un ejemplo de lo que estoy usando. Grandes agregaciones de datos con MongoMapper y modelo de usuario con postgres (aplicación alojada en Heroku)

Para mi configuración, descargué cosas de configuración en mi config.yml

desarrollo:adaptador:host MongoDB:base de datos localhost:my-dev-dbtest:adaptador:host MongoDB:base de datos localhost:my-dev-dbstaging:adaptador:host MongoDB:host remoto (para mí, amazon ec2) base de datos:my-staging-dbproduction:adaptador:MongoDB host:host remoto (para mí, amazon ec2) base de datos:my-production-db 

y creó un inicializador que diferencia entre los 2 DB:

/inicializadores/base de datos.rb

&&base de datos_yaml[Rails.env]['adaptador'] =='MongoDB' mongo_database =base de datos_yaml[Rails.env] MongoMapper.connection =Mongo::Connection.new(mongo_database['host'], 27017, :pool_size => 5, :timeout => 5) MongoMapper.database =mongo_database['database']end