Đã kiểm tra ActiveRecord, DataMapper, Sequel: một số globals sử dụng (biến tĩnh) một số yêu cầu kết nối db mở trước khi tải tệp nguồn với mô hình. ORM nào tốt hơn để sử dụng trong ứng dụng Sinatra sử dụng các cơ sở dữ liệu khác nhau.ORM nào để sử dụng trong một quá trình nhiều kết nối db ứng dụng sinatra?
Trả lời
DataMapper được thiết kế để sử dụng nhiều cơ sở dữ liệu.
Bạn có thể thiết lập nhiều vị trí lưu trữ chỉ bằng cách nói điều gì đó như DataMapper.setup(:repository_one, "mysql://localhost/my_db_name")
.
DataMapper sau đó theo dõi tất cả các kho đã được thiết lập trong một băm mà bạn có thể tham khảo và sử dụng cho Phạm vi:
DataMapper.repository(:repository_one){ MyModel.all }
(Phạm vi mặc định chỉ là DataMapper.repository, mà bạn có thể thiết lập bằng cách nói DataMapper.setup(:default, "postgres://localhost/my_primary_db")
hoặc tương tự)
Cá nhân tôi thích phần tiếp theo cho tất cả các truy cập cơ sở dữ liệu ORM và cơ bản của tôi và là những gì tôi sử dụng với Sinatra/Padrino và bất kỳ lúc nào tôi cần truy cập cơ sở dữ liệu ngoài Rails.
Tôi đã sử dụng DataMapper nhưng cảm thấy phần tiếp theo dễ dàng hơn và linh hoạt hơn, nhưng có lẽ đó chỉ là cách tâm trí của tôi hoạt động. ActiveRecord là OK, nhưng tôi nghĩ nó hoạt động tốt nhất khi kết hợp với Rails.
Điều gì là "tốt hơn"? Tôi nghĩ rằng đó là chủ quan và chủ yếu là gắn liền với cách bộ não của bạn hoạt động.
Dường như có thể sử dụng các cơ sở dữ liệu khác nhau trong hầu hết các ORM. Đối với DataMapper, hãy xem câu trả lời bí mật. Đối với phần tiếp theo, bạn có thể chuyển bộ xử lý cơ sở dữ liệu cho mô hình:
class Tag < Sequel::Model(db)
end
nơi db được mở cơ sở dữ liệu. Đối với ActiveRecord, bạn có thể sử dụng phương thức establish_connection.
- 1. Nhiều DB kết nối trong đường ray
- 2. Kết nối với Oracle DB sử dụng sqlplus
- 3. Ứng dụng Windows C# - Nhiều chủ đề sử dụng cùng một kết nối?
- 4. Lệnh để tìm quá trình sử dụng quá nhiều CPU
- 5. Nơi lưu trữ chuỗi kết nối được nhiều ứng dụng sử dụng trong cùng một máy?
- 6. Kết nối với Oracle DB bằng cách sử dụng Ruby
- 7. Giám sát các kết nối được sử dụng trên mysql để gỡ lỗi 'quá nhiều kết nối'
- 8. Làm thế nào để bắt đầu một ứng dụng Sinatra sử dụng "chạy"
- 9. MySQLNonTransientConnectionException: Quá nhiều kết nối
- 10. Quá trình xem xét ứng dụng iOS: ứng dụng yêu cầu phần cứng bên ngoài (kết nối qua WiFi)
- 11. Ít treo ứng dụng Sinatra
- 12. Làm cách nào để tạo Flask SQLAlchemy sử dụng lại các kết nối db?
- 13. Lỗi MySQL "Quá nhiều kết nối"
- 14. Làm thế nào để kết nối XAMPP MySQL cục bộ DB bằng cách sử dụng JDBC?
- 15. SQLSTATE [08004] [1040] Quá nhiều kết nối
- 16. Làm thế nào để đếm các kết nối db mở?
- 17. Giới hạn kết nối cho Google Cloud SQL từ Máy ứng dụng là gì và cách tốt nhất để sử dụng lại các kết nối DB?
- 18. Tại sao sử dụng Singleton để quản lý kết nối db?
- 19. Tiêm phụ thuộc trong ứng dụng Sinatra
- 20. Sử dụng quá nhiều include() trong php
- 21. Sử dụng quá nhiều ViewBag
- 22. Cách sử dụng các kết nối trong HTML5 được lập chỉ mục Db?
- 23. Tôi có thể buộc delay_job sử dụng kết nối db cụ thể như thế nào?
- 24. Làm thế nào để đảm bảo một cách chính xác một ứng dụng sử dụng mua trong ứng dụng và DB địa phương
- 25. Facebook Kết nối với một ứng dụng có nhiều tên miền?
- 26. Xử lý quá trình kết thúc của một ứng dụng cửa sổ
- 27. Chia sẻ kết nối db giữa các luồng trong ứng dụng C#?
- 28. cách kết nối với một db sqlite sử dụng phần tiếp theo pro
- 29. Nơi kết nối với DB trong MVC
- 30. Kết nối một tín hiệu pyQT quá tải sử dụng kiểu mới cú pháp
Tài liệu chính thức có thể được tìm thấy tại http://datamapper.org/docs/misc.html. Nếu bạn không chỉ định ngữ cảnh/kho lưu trữ, nó sẽ lấy ': default'. Bạn nên ít nhất có một bối cảnh như vậy. –