2012-06-20 5 views
7

하나의 레일 앱에서 MongoDB와 PostgreSQL을 사용할 수 있습니까? 특히 나는 결국 MongoHQ와 같은 것을 사용하기를 원할 것이다. 지금까지 나는 이것을 실험에 사용하지 못했습니다. 그리고 MongoDB 문서에서 ActiveRecord를 비활성화해야한다고 구체적으로 말합니다. 어떤 조언을 주시면 감사하겠습니다.하나의 레일 앱에 PostgreSQL이있는 MongoDB

답변

10

MongoDB를 사용하려면 ActiveRecord를 비활성화 할 필요가 없습니다. Mongoid을 확인하고 기존 ActiveRecord 모델과 함께 모든 모델에 보석을 추가하십시오. MongoHQ는 MongoDB의 호스팅 서비스 일 뿐이며 모든 ODM (Object Document Mapper)과 함께 사용할 수 있습니다.

자세한 내용은 http://mongoid.org/en/mongoid/docs/installation.html을 확인하십시오. 선택적 '활성 레코드 제거'단계를 건너 뜁니다.

+1

ActiveRecord 제거와 관련하여 Mongoid 문서를 읽는다면 특정주의 사항은 'Mongo를 SQL 데이터베이스와 함께 사용하지 않는 한 ActiveRecord가 필요하지 않습니다.' – Stennie

+0

@Stennie 정확합니다. 따라서, 만약 당신이 함께 사용하고 싶지 않다면 그냥'ActiveRecord'하지 마십시오. –

+0

나는 실제로 MongoMapper에 붙어 있었고 많은 성공을 거두지 못했습니다. 그리고 MongoDb 문서에서 ActiveRecord를 제거하라는 지시를 받았습니다. [http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started] 몽고와 함께 놀고 행운을 빌어 요. 나는이 "ActiveRecord를 막지 마라"라는 마지막 주석을 이해하지 못한다. ... –

0

최근 클라이언트 사이트에서 MySQL과 MongoDB 데이터를 단일 Java 응용 프로그램과 병합 한 프로덕션 시스템에서 작업했습니다. 솔직히 말해서 그것은 악몽이었습니다. 두 데이터베이스간에 데이터를 조인하려면 복잡한 Java 데이터 구조와 많은 코드가 필요합니다. 실제로 데이터베이스가 가장 효과적입니다.

두 데이터베이스 시스템에 대한 하나의 유스 케이스는 SQL 데이터베이스에 순수한 트랜잭션 데이터를 가지고보고 등을 위해 데이터를 MongoDB에 집계하는 것입니다. 사실 이것은 클라이언트에서 원래 계획 이었지만 데이터베이스가 트랜잭션 데이터와 상호 연관되는 방식.

시스템 유지 보수가 어려워 졌으므로 MegoDB 전용 솔루션 (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는 MongoDB를 아주 잘 지원한다.

나빠질 수있는 방법에 대한 개인적인 관찰을 기반으로 두 개의 데이터베이스를 실행하지 않는 것이 좋습니다.