¿Puedo usar MongoDB y PostgreSQL en una aplicación de rieles? Específicamente, eventualmente querré usar algo como MongoHQ. Hasta ahora no he logrado que esto funcione en la experimentación. Y me preocupa que la documentación de MongoDB específicamente dice que tengo que desactivar ActiveRecord. Cualquier consejo sería apreciado.MongoDB con PostgreSQL en la aplicación One Rails
Respuesta
No necesita deshabilitar ActiveRecord para usar MongoDB. Consulte Mongoid y simplemente agregue la gema más cualquier modelo junto con cualquiera de sus modelos ActiveRecord existentes. Debe tener en cuenta que MongoHQ es solo un servicio de alojamiento para MongoDB y se puede utilizar junto con cualquier Object Document Mapper (ODM).
Para obtener más información, marque http://mongoid.org/en/mongoid/docs/installation.html. Simplemente omita el paso opcional "Deshacerse del registro activo".
En un sitio de cliente reciente trabajé con un sistema de producción que combinaba datos de MySQL y MongoDB con una sola aplicación de Java. Para ser honesto, fue una pesadilla. Para unir datos entre las dos bases de datos se necesitaban complejas estructuras de datos de Java y muchos códigos, que en realidad son las bases de datos las que mejor funcionan.
Un caso de uso para un sistema de dos bases de datos es tener datos transaccionales puros en la base de datos SQL y agregar los datos en MongoDB para generar informes, etc. De hecho, este había sido el plan original en el cliente, pero la forma en que las bases de datos se interrelacionaron para datos transaccionales.
El sistema se ha vuelto tan difícil de mantener que se planea eliminar y reemplazar con una solución exclusiva de MongoDB (utilizando Meteor.js).
Postgres tiene un excelente soporte para documentos JSON a través de su tipo de datos jsonb, y es totalmente compatible con Rails 4.2, listo para usar. También he trabajado con esto y me resulta muy fácil, y recomendaría este enfoque.
Esto permite una mezcla fácil de SQL y NoSQL transacciones, por ejemplo
select id, blast_results::json#>'{"BlastOutput2","report","results","search","hits"}'
from blast_caches
where id in
(select primer_left_blast_cache_id
from primer3_output_pairs where id in (185423,185422,185421,185420,185419))
No ofrece las funciones de manipulación de datos completos MongoDB, pero probablemente es suficiente para la mayoría de las necesidades.
Algunos enlaces útiles aquí:
http://nandovieira.com/using-postgresql-and-jsonb-with-ruby-on-rails
https://dockyard.com/blog/2014/05/27/avoid-rails-when-generating-json-responses-with-postgresql
También hay informes de que puede superar a MongoDB en JSON:
http://www.slideshare.net/EnterpriseDB/the-nosql-way-in-postgres
Otra opción sería mover su aplicación Rails enteramente a MongoDB , y Rails tiene muy buen soporte para MongoDB.
No recomendaría ejecutar dos bases de datos, basadas en observaciones personales sobre cómo puede salir mal.
- 1. Múltiples dominios con la aplicación one rails
- 2. ¿Combina MongoDB y Postgresql en Rails?
- 3. Mongodb y PostgreSql thoughts
- 4. Aplicación Multi-Tenant Rails 3 en Heroku usando PostgreSQL
- 5. MongoDB Cobertura equivalente en PostgreSQL
- 6. MongoDB con Mongoid in Rails - Indexación geoespacial
- 7. Convirtiendo una aplicación Ruby on Rails de sqlite a postgresql
- 8. ¿Cómo se compara el escalado de PostgreSQL con MongoDB?
- 9. Rails no convierte la zona horaria (PostgreSQL)
- 10. Implementación de Postgresql en la aplicación Windows
- 11. ¿Qué hago con ClojureScript One?
- 12. Uso de esquemas PostgreSQL múltiples con modelos Rails
- 13. Rails + Fallo de descifrado SSL PostgreSQL
- 14. ¿Cómo consultar mongodb con "me gusta" utilizando la aplicación java?
- 15. one-to-many bidireccional con
- 16. Cómo migrar de SQLite a PostgreSQL (Rails)
- 17. Usando .one() con .live() jQuery
- 18. Problemas con el comando COPY de postgresql con Rails en un servidor diferente
- 19. Error de MongoDB con Mongoid, Heroku, dispositivo, MongoHQ y Rails
- 20. ¿Cómo abordar GROUP BY en PostgreSQL usando Rails?
- 21. Mongodb, mongoid Rails 3.1. * Error con registro activo
- 22. Rails La consulta SQL con% Wildcards funciona en SQLite pero no en PostgreSQL?
- 23. Ruby on Rails | Postgresql ignora mi contraseña en database.yml
- 24. one-jar eliminar la información de advertencia detallada en la carga de la aplicación
- 25. ¿Cómo mezclar mongodb y un db tradicional en Rails?
- 26. Importar Excel en la aplicación Rails
- 27. Relación ONE-TO-ONE de Symfony
- 28. Rails 3 migrations: boolean (mysql vs postgreSQL)
- 29. ¿Configuraciones de la aplicación Rails?
- 30. Conexión TCP persistente en la aplicación Rails
Si lee la documentación de Mongoid donde se refiere a deshacerse de ActiveRecord, la advertencia específica es 'No necesita ActiveRecord a menos que esté tratando de usar Mongo en concierto con una base de datos SQL. – Stennie
@Stennie Exactamente. Por lo tanto, si desea utilizarlos en tándem, simplemente no 'ActiveRecord'. –
Estaba realmente atrapado en MongoMapper y no tenía mucho éxito. Y fue en los documentos de MongoDb donde te instruyeron para que te deshagas de ActiveRecord [http://www.mongodb.org/display/DOCS/Rails+3+++Getting+Started] Jugaré con mongoid y veré si ten mejor suerte No entiendo este último comentario de "simplemente no ActiveRecord" ... –