2010-04-14 35 views

Trả lời

8

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ự)

+0

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. –

2

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.

5

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.

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