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. Heroku Error with Rails App
- 3. PostgreSQL通知とWebSocket with Rails
- 4. MongoDB with Mongoid in Rails - Geospatial Indexing
- 5. Resque with Rails 3 + Heroku + RedisToGo PostgreSQLエラー
- 6. rails api with mongodb raising exception rails gコマンド
- 7. RXSwift with one time subscriber
- 8. Rails 5 api only app with home page
- 9. Version One - Open Story with API
- 10. Dancer2 app with Heroku
- 11. C with postgresql
- 12. Rancher with postgresql
- 13. PostgreSQL with Python
- 14. PostgreSQL INSERT with statements
- 15. Postgresql join with limit
- 16. Postgresql ALL with IN
- 17. 404ファイルが見つからないYii2 app-advanced with one-domain configuration
- 18. セロリwith MongoDB Broker
- 19. Rails with Hadoop
- 20. facebook login with omniauth with rails
- 21. CanCan、Devise、Rails、Backbone.js、with with issue:update
- 22. Entity-Framework 5.0 with PostgreSQL
- 23. App App ProfileページWith App
- 24. RestHeart with mongoDB
- 25. Ajax/jQuery with Mongodb
- 26. MongoDB with Powershell
- 27. Kubernetes with MongoDb
- 28. MongoDB SSIS with $ unwind
- 29. Java with mongodb
- 30. Mongodb $ dayOfMonth with timezone
ActiveRecordを取り除くことを意味するMongoidのドキュメントを読んでいる場合、特定の警告は「MongoをSQLデータベースと一緒に使用しようとしない限り、ActiveRecordを必要としません。」 – Stennie
@Stennieまさに。したがって、それらをタンデムで使用したい場合は、 'ActiveRecord'を使わないでください。 –
私は実際にMongoMapperに立ち往生し、大成功はしていませんでした。そして、それはMongoDbの文書の中で、ActiveRecord [http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started]を取り除くよう指示しました。私はモンゴイドと遊び、私がより良い運を持っています。私はこの最後のコメントを理解していない "ちょうどActiveRecord" ... –