What ORM to use in one process multiple db connections sinatra application?

风格不统一 提交于 2019-11-30 21:45:41

DataMapper is designed for multi-database use.

You can set up multiple repositories just by saying something like DataMapper.setup(:repository_one, "mysql://localhost/my_db_name").

DataMapper then tracks all the repositories that have been setup in a hash that you can reference and use for scoping:

DataMapper.repository(:repository_one){ MyModel.all }

(The default scope just being DataMapper.repository, which you can set up by saying DataMapper.setup(:default, "postgres://localhost/my_primary_db") or the like)

It seems that it is possible to use different databases in most of ORMs. For DataMapper look at knowtheory answer. For Sequel you can pass database handler to model:

class Tag < Sequel::Model(db)
end

where db is opened database. For ActiveRecord you can use establish_connection method.

Personally I prefer Sequel for all my ORM and basic database accesses and is what I use with Sinatra/Padrino and any other time I need to access a database outside of Rails.

I've used DataMapper but felt Sequel was easier and more flexible, but maybe that's just how my mind works. ActiveRecord is OK on its own, but I think it works best in combination with Rails.

Which is "better"? I think that is subjective and mostly is tied to how your brain works.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!