MongoDBとPostgreSQLを1つのレールアプリで使用できますか?具体的には、最終的にはMongoHQのようなものを使用したいと考えています。これまでのところ、私はこれを実験的に行うことに失敗しました。 MongoDBのドキュメントで特にActiveRecordを無効にしなければならないと言います。アドバイスをいただければ幸いです。MongoDB with PostgreSQL with One Rails App
答えて
MongoDBを使用するためにActiveRecordを無効にする必要はありません。 Mongoidをチェックし、既存のActiveRecordモデルのいずれかの側面に沿って任意のモデルを追加してください。 MongoHQはMongoDBの単なるホスティングサービスであり、Object Document Mapper(ODM)と一緒に使用できることに注意してください。
詳細については、http://mongoid.org/en/mongoid/docs/installation.htmlを参照してください。オプションの「アクティブレコードを削除する」ステップをスキップするだけです。
最近のクライアントサイトでは、MySQLとMongoDBデータを1つのJavaアプリケーションでマージした運用システムで作業しました。正直言って、それは悪夢だった。 2つのデータベース間でデータを結合するには、複雑なJavaデータ構造と多くのコードが必要です。実際にはデータベースが最適です。
2つのデータベースシステムのユースケースの1つは、SQLデータベースに純粋なトランザクションデータを格納し、データをMongoDBに集約して報告することです。実際これはクライアントでは元々の計画でしたが、トランザクション・データのためにデータベースが相互に関連づけられる方法。
システムは廃止される予定であり、MongoDB専用のソリューション(Meteor.jsを使用)に置き換えることが計画されているので、維持管理が困難になっています。
Postgresはjsonbデータ型を使用したJSONドキュメントの優れたサポートを備えており、そのままの状態でRails 4.2で完全にサポートされています。私はこれにも取り組んできました。私はそれを簡単に見つけました。私はこのアプローチをお勧めします。
これは、SQLとNoSQLの取引を簡単にミックスすることができ、例えば
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))
それは完全なMongoDBのデータ操作機能を提供していますが、おそらく最もニーズのために十分であることはありません。
ここにいくつかの便利なリンク:
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
もありますが、それはJSONでのMongoDBをアウトパフォームすることができたことを報告:
http://www.slideshare.net/EnterpriseDB/the-nosql-way-in-postgres
別のオプションは、完全にMongoDBにあなたのRailsアプリを動かすことであろうRailsはMongoDBを非常にうまくサポートしています。
どのように悪くなるかについての個人的な観察に基づいて、2つのデータベースを実行することはお勧めしません。
- 1. MongoDB with Angular App
- 2. PostgreSQL通知とWebSocket with Rails
- 3. MongoDB with Mongoid in Rails - Geospatial Indexing
- 4. Resque with Rails 3 + Heroku + RedisToGo PostgreSQLエラー
- 5. Rancher with postgresql
- 6. セロリwith MongoDB Broker
- 7. Dart with MongoDB
- 8. RestHeart with mongoDB
- 9. Pylons Authkit with Mongodb
- 10. MongoDB with Drupal 7
- 11. Entity-Framework 5.0 with PostgreSQL
- 12. App App ProfileページWith App
- 13. Rails with Hadoop
- 14. CanCan、Devise、Rails、Backbone.js、with with issue:update
- 15. facebook login with omniauth with rails
- 16. android app with twitter
- 17. iOs App with VoIP
- 18. WP app with WCF
- 19. MongoDB geospatial query with $ not
- 20. app engine req.getParameter with float
- 21. DWR with Google app engine
- 22. Android - OAuth app with popupWindow
- 23. mulitpart upload with android + rails
- 24. Rails multi_db with transaction
- 25. javascript with rails
- 26. AJAX with Rails 3
- 27. ehcache with JRuby Rails
- 28. 'Rails' with Activesupport 3.2.0
- 29. Rails admin with Sorcery
- 30. Twitter with Rails
ActiveRecordを取り除くことを意味するMongoidのドキュメントを読んでいる場合、特定の警告は「MongoをSQLデータベースと一緒に使用しようとしない限り、ActiveRecordを必要としません。」 – Stennie
@Stennieまさに。したがって、それらをタンデムで使用したい場合は、 'ActiveRecord'を使わないでください。 –
私は実際にMongoMapperに立ち往生し、大成功はしていませんでした。そして、それはMongoDbの文書の中で、ActiveRecord [http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started]を取り除くよう指示しました。私はモンゴイドと遊び、私がより良い運を持っています。私はこの最後のコメントを理解していない "ちょうどActiveRecord" ... –