2010-04-22 33 views
6

Tôi dự định có nhiều ứng dụng Rails cho mỗi site.com, api.site.com, admin.site.com. Tất cả các ứng dụng sẽ truy cập cùng một bảng từ một cơ sở dữ liệu MySQL duy nhất. Ứng dụng và cơ sở dữ liệu chạy trong cùng một máy chủ.Nhiều ứng dụng Rails, một cơ sở dữ liệu MySQL đơn lẻ

Có bất kỳ cài đặt nào trong Rails, ActiveRecord hoặc MySQL mà tôi cần phải quan tâm về scenerio truy cập ở trên không? Cảm ơn

Chạy: Rails 2.3.5, MySQL 5.0, Nginx, hành khách, RubyEE

Trả lời

11

Cấu hình này có xu hướng được khá khó khăn để duy trì. Trong mọi ứng dụng, bạn sẽ cần phải giữ schema.rb và các mô hình đồng bộ để sử dụng cùng một cơ sở dữ liệu. Nó có nghĩa là rất nhiều sự trùng lặp.

Đây không phải là ý tưởng hay. Thay vào đó, bạn có thể muốn thiết kế ứng dụng để đáp ứng một trong các trường hợp sau:

  • một ứng dụng Rails xử lý site.com, api.site.com và admin.site.com (tại sao bạn cần ứng dụng riêng biệt ?)
  • nhiều ứng dụng Rails, nhưng chỉ một ứng dụng tương tác với db. Những người khác sử dụng API ứng dụng chính (khá phức tạp)
  • ứng dụng khác nhau với mục đích khác nhau (ví dụ, bạn có thể muốn sử dụng Sinatra + Datamapper cho api.site.com)

Tùy chọn đầu tiên có lẽ là tốt nhất trong hầu hết các trường hợp.

+0

Tôi đồng ý với phiên bản đầu tiên, bạn có thể có tất cả trong một ứng dụng. – Adnan

+0

Tôi sẽ xem xét lại, tùy chọn đầu tiên có thể. Cảm ơn. –

3

Tôi đã trả lời câu hỏi tương tự here. Bạn có thể làm điều đó và đôi khi nó là hợp lý.

Các vấn đề liên quan