在一个进程中使用什么ORM多个db连接sinatra应用程序?

And*_*syk 5 ruby database orm sinatra sequel

检查ActiveRecord,DataMapper,续集:有些使用全局变量(静态变量),有些需要在使用模型加载源文件之前打开数据库连接.什么ORM更适合在使用不同数据库的sinatra应用程序中使用.

kno*_*ory 8

DataMapper专为多数据库使用而设计.

您可以通过说出类似的内容来设置多个存储库DataMapper.setup(:repository_one, "mysql://localhost/my_db_name").

然后,DataMapper会跟踪已在散列中设置的所有存储库,您可以引用这些存储库并将其用于作用域:

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

(默认范围只是DataMapper.repository,您可以通过说法DataMapper.setup(:default, "postgres://localhost/my_primary_db")等来设置)


And*_*syk 5

似乎可以在大多数ORM中使用不同的数据库.对于DataMapper,请查看知识答案.对于Sequel,您可以将数据库处理程序传递给模型:

class Tag < Sequel::Model(db)
end
Run Code Online (Sandbox Code Playgroud)

db打开数据库的位置.对于ActiveRecord,您可以使用establish_connection方法.