Tôi có thể sử dụng MongoDB và PostgreSQL trong một ứng dụng đường ray không? Cụ thể là cuối cùng tôi sẽ muốn sử dụng cái gì đó như MongoHQ. Cho đến nay tôi đã thất bại trong việc làm việc này trong thử nghiệm. Và nó liên quan đến tôi rằng tài liệu MongoDB cụ thể nói rằng tôi phải vô hiệu hóa ActiveRecord. Lời khuyên nào sẽ được đánh giá cao.MongoDB với PostgreSQL trong một ứng dụng Rails
Trả lời
Bạn không cần phải tắt ActiveRecord để sử dụng MongoDB. Kiểm tra Mongoid và chỉ cần thêm đá quý cộng với bất kỳ mô hình nào bên cạnh bất kỳ mô hình ActiveRecord hiện tại nào của bạn. Bạn nên lưu ý rằng MongoHQ chỉ là một dịch vụ lưu trữ cho MongoDB và có thể được sử dụng cùng với bất kỳ Mapper tài liệu đối tượng (ODM).
Để biết thêm chi tiết, hãy kiểm tra http://mongoid.org/en/mongoid/docs/installation.html. Chỉ cần bỏ qua bước 'Thoát khỏi Ghi Hoạt động' tùy chọn.
Trên một trang web khách hàng gần đây, tôi đã làm việc với một hệ thống sản xuất hợp nhất dữ liệu MySQL và MongoDB với một ứng dụng Java đơn lẻ. Thành thật mà nói, đó là một cơn ác mộng. Để kết nối dữ liệu giữa hai cơ sở dữ liệu yêu cầu cấu trúc dữ liệu Java phức tạp và nhiều mã, đó thực sự là cơ sở dữ liệu làm tốt nhất.
Một trường hợp sử dụng cho hai hệ thống cơ sở dữ liệu là có dữ liệu giao dịch thuần túy trong cơ sở dữ liệu SQL và tổng hợp dữ liệu vào MongoDB để báo cáo v.v ... Thực tế đây là kế hoạch ban đầu của khách hàng, nhưng cách cơ sở dữ liệu trở nên liên quan đến dữ liệu giao dịch.
Hệ thống đã trở nên khó khăn để duy trì kế hoạch được loại bỏ và được thay thế bằng giải pháp chỉ MongoDB (sử dụng Meteor.js).
Postgres có hỗ trợ tuyệt vời cho tài liệu JSON thông qua kiểu dữ liệu jsonb của nó và được hỗ trợ đầy đủ trong Rails 4.2, ngoài hộp. Tôi cũng đã làm việc với điều này và tôi thấy nó dễ dàng, và tôi muốn giới thiệu phương pháp này.
Điều này cho phép một sự pha trộn dễ dàng của SQL và các giao dịch NoSQL, ví dụ:
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))
Nó không cung cấp các tính năng đầy đủ MongoDB thao tác dữ liệu, nhưng có lẽ là đủ cho hầu hết các nhu cầu này.
Một số liên kết hữu ích ở đây:
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
Ngoài ra còn có báo cáo rằng nó có thể làm tốt hơn MongoDB trên json:
http://www.slideshare.net/EnterpriseDB/the-nosql-way-in-postgres
Một lựa chọn khác sẽ được di chuyển ứng dụng Rails của bạn hoàn toàn để MongoDB và Rails có hỗ trợ rất tốt cho MongoDB.
Tôi sẽ không khuyên bạn nên chạy hai cơ sở dữ liệu, dựa trên quan sát cá nhân về cách nó có thể xấu.
- 1. Mongodb và PostgreSql suy nghĩ
- 2. Sử dụng nhiều lược đồ PostgreSQL với các mẫu Rails
- 3. Multi-Tenant Rails 3 Ứng dụng trên Heroku bằng cách sử dụng PostgreSQL
- 4. Thông báo PostgreSQL và WebSockets với Rails
- 5. Kết hợp MySQL và Mongodb trong một ứng dụng
- 6. Mongodb trong ứng dụng C# di động
- 7. Tỷ lệ của PostgreSQL so với MongoDB như thế nào?
- 8. Triển khai Postgresql Cùng với ứng dụng Windows
- 9. Cài đặt postgresql với Homebrew và Rails trên Mountain Lion
- 10. Cách triển khai ứng dụng C# .net với MongoDB
- 11. Ruby on Rails + PostgreSQL: sử dụng các chuỗi tùy chỉnh
- 12. Sử dụng RequireJS với Rails 3.1 ứng dụng
- 13. Rails/PostgreSQL SQL khác biệt w/Ngày
- 14. Sử dụng JSON với MongoDB?
- 15. Ứng dụng Rails trong thư mục con
- 16. url Prefix trong ứng dụng Rails
- 17. Chủ đề trong ứng dụng Rails
- 18. Ứng dụng Modularizing Rails
- 19. Lỗi MongoDB với Mongoid, Heroku, Thiết bị, MongoHQ và Rails
- 20. Có ý nghĩa gì khi sử dụng cả hai mongodb và mysql trong cùng một ứng dụng đường ray?
- 21. Sử dụng MongoDB với Rails - Bất kỳ bài viết hay nào?
- 22. Mongodb, mongoid Rails 3.1. * Lỗi với bản ghi Hoạt động
- 23. "193:% 1 không phải là một ứng dụng Win32 hợp lệ" lỗi với một ứng dụng Rails mới
- 24. bỏ qua application.html.erb trong ứng dụng Rails
- 25. Rails Postgresql nhiều lược đồ và cùng một tên bảng
- 26. kết nối một mongodb được tạo trong mongolab thông qua một ứng dụng java
- 27. Favicon trong Ruby on Rails ứng dụng
- 28. Ưu điểm của MongoDB trên MySQL và PostgreSQL là gì?
- 29. Sự cố với lệnh COPY postgresql với Rails trên máy chủ khác nhau
- 30. Tìm hình ảnh chưa sử dụng trong ứng dụng Rails?
Nếu bạn đọc tài liệu Mongoid nơi nó đề cập đến việc loại bỏ ActiveRecord, báo trước cụ thể là 'Bạn không cần ActiveRecord trừ khi bạn đang cố gắng sử dụng Mongo hòa hợp với cơ sở dữ liệu SQL.' – Stennie
@Stennie Chính xác. Vì vậy, nếu bạn muốn sử dụng chúng song song chỉ cần không 'ActiveRecord'. –
Tôi đã thực sự bị mắc kẹt trên MongoMapper và không có nhiều thành công. Và nó nằm trong tài liệu MongoDb, nơi họ hướng dẫn bạn loại bỏ ActiveRecord [http://www.mongodb.org/display/DOCS/Rails+3+-+Getting+Started] Tôi sẽ chơi với mongoid và xem liệu tôi có có may mắn hơn. Tôi không hiểu nhận xét cuối cùng này về "chỉ không ActiveRecord" ... –