开发者

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

开发者 https://www.devze.com 2022-12-27 02:21 出处:网络
Checked ActiveRecord, DataMapper, Sequel: some use globals (static variables) 开发者_高级运维some require open db connection before loading source file with models. What ORM is better to use in sinatr

Checked ActiveRecord, DataMapper, Sequel: some use globals (static variables) 开发者_高级运维some require open db connection before loading source file with models. What ORM is better to use in sinatra application that uses different databases.


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.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号