我正在开发一些可与MySQL数据库配合使用的Ruby脚本。所有数据库都在一台服务器上。不幸的是,我们有很多数据库(每个客户都有一个),有些脚本需要连接到每个数据库。
现在,脚本使用
连接到某个数据库db = Sequel.connect(:adapter => 'mysql', :user => user, :host => server, :database => database, :password => passwd, :encoding => 'utf8')
有效,但需要断开连接并重新连接每个数据库。
有没有办法如何连接一次到数据库服务器,然后只是更改我正在使用的数据库?
答案 0 :(得分:1)
如果你真的想避免断开连接和重新连接,你可能会做这样的事情:
db = Sequel.connect(:adapter => 'mysql', :user => user, :host => server, :database => database, :password => passwd, :encoding => 'utf8', :single_threaded=>true)
databases = %w'db1 db2 db3'
databases.each do |db_name|
db << "USE #{db_name}"
...
end
我不确定我会推荐它,除非断开连接和重新连接非常慢(数据库和应用程序之间的高延迟?)。