Posso utilizzare MongoDB e PostgreSQL in un'unica app per rotaie? In particolare, alla fine voglio usare qualcosa come MongoHQ. Finora non sono riuscito a farlo funzionare in sperimentazione. E mi preoccupa il fatto che la documentazione di MongoDB dice specificamente che devo disabilitare ActiveRecord. Tutto il consiglio sarebbe apprezzato.MongoDB con PostgreSQL in app One Rails
risposta
Non è necessario disattivare ActiveRecord per utilizzare MongoDB. Controlla Mongoid e aggiungi la gemma più eventuali modelli accanto ai tuoi modelli ActiveRecord esistenti. Si noti che MongoHQ è solo un servizio di hosting per MongoDB e può essere utilizzato insieme a qualsiasi Object Document Mapper (ODM).
Per ulteriori dettagli, verificare http://mongoid.org/en/mongoid/docs/installation.html. Salta semplicemente il passaggio facoltativo "Come eliminare i record attivi".
Su un sito client recente ho lavorato con un sistema di produzione che univa dati MySQL e MongoDB con una singola app Java. Ad essere onesti, è stato un incubo. Per unire i dati tra i due database sono richieste strutture dati Java complesse e un sacco di codice, che in realtà è il database che fa meglio.
Un caso di utilizzo per un sistema di due database consiste nell'avere i dati puramente transazionali nel database SQL e nell'aggregare i dati in MongoDB per la segnalazione, ecc. In realtà questo era stato il piano originale del cliente, ma lungo il modo in cui i database sono stati interrelati per i dati transazionali.
Il sistema è diventato così difficile da mantenere che è pianificato di essere scartato e sostituito con una soluzione solo MongoDB (utilizzando Meteor.js).
Postgres offre un eccellente supporto per i documenti JSON tramite il suo tipo di dati jsonb ed è completamente supportato in Rails 4.2, pronto all'uso. Ho anche lavorato con questo e lo trovo un gioco da ragazzi, e consiglierei questo approccio.
Questo permette un facile mix di SQL e NoSQL transazioni, ad esempio
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))
Non offre la piena funzionalità di manipolazione dei dati MongoDB, ma probabilmente è sufficiente per la maggior parte delle esigenze.
Alcuni link utili qui:
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
Ci sono anche i rapporti che esso può sovraperformare MongoDB su JSON:
http://www.slideshare.net/EnterpriseDB/the-nosql-way-in-postgres
Un'altra opzione sarebbe quella di spostare la vostra applicazione Rails interamente alla MongoDB e Rails ha un ottimo supporto per MongoDB.
Non consiglierei di eseguire due database, in base a osservazioni personali su come può andare male.
- 1. Combina MongoDB e Postgresql in Rails?
- 2. Multi-Tenant Rails 3 App su Heroku con PostgreSQL
- 3. Mongodb e PostgreSql pensieri
- 4. MongoDB con Mongoide in Rails - Indicizzazione Geospaziale
- 5. MongoDB Equivalente della collezione Capped in PostgreSQL
- 6. Equivalente PostgreSQL di Oplog Tailing in MongoDB
- 7. Notifiche PostgreSQL e WebSocket con Rails
- 8. one XCode Project più app per iPhone
- 9. Rails: Archivia JSON in MongoDB
- 10. Errore Rails + PostgreSQL SSL decrittografia
- 11. Rails STI che utilizza il modulo ONE
- 12. Mappa one-to-one con flussi Java
- 13. App per Windows (One Click) Vs Web App
- 14. Rapporto One-To-One con mangusta?
- 15. Sviluppo di app per Xbox One?
- 16. Dichiarazione preparata su Postgresql in Rails
- 17. Come fare l'ordine insensibile alle maiuscole in Rails con postgresql
- 18. PostgreSQL iLike con più partite in Rails ActiveRecord
- 19. Come si confronta il ridimensionamento di PostgreSQL con MongoDB?
- 20. errore di codifica con Rails, PostgreSQL e caratteri non standard
- 21. Relazione One to One in MySQL
- 22. Mappatura one-to-one facoltativa in Hibernate
- 23. problema strano con Rails app e Mongrel
- 24. grugnito-contrib-caffè one-to-one compilare
- 25. Uso RequireJS con Rails 3.1 app
- 26. nibernetico fluente one-to-one?
- 27. Coldfusion 10 - Chat dal vivo One on One con Websockets
- 28. Errore MongoDB con Mongoid, Heroku, Device, MongoHQ e Rails
- 29. Installazione di postgresql con Homebrew e Rails su Mountain Lion
- 30. non possono installare app società Codename One Windows Phone
Se si legge la documentazione Mongoid in cui si riferisce alla rimozione di ActiveRecord, l'avvertenza specifica è 'Non è necessario ActiveRecord a meno che non si stia tentando di utilizzare Mongo in concerto con un database SQL. – Stennie
@Stennie Esattamente. Quindi, se vuoi usarli in tandem, semplicemente non 'ActiveRecord'. –
In realtà ero bloccato su MongoMapper e non avendo molto successo. Ed è stato nei documenti MongoDb in cui ti hanno insegnato a sbarazzarti di ActiveRecord [http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started] giocherò con mongoid e vedrò se avere migliore fortuna Non capisco questo ultimo commento di "just do not ActiveRecord" ... –