【发布时间】:2019-02-21 13:59:35
【问题描述】:
我正在使用 sequel 从不同的数据库中查询信息。使用以下代码
Sequel.connect(mmt018_db_connection_settings) do |db|
class ResultPlacementAssign < Sequel::Model(db[:result_placement_assign]); end
# do something with 'ResultPlacementAssign'
end
Sequel.connect(mmt024_db_connection_settings) do |db|
class PlatineMass < Sequel::Model(db[:platine_mass]); end
# do something with 'PlatineMass'
end
效果很好。但是,如果我尝试将模型定义放在单独的文件中以便在需要时需要它们,那么似乎只有第一个数据库连接有效。 所以把上面的代码改成
Sequel.connect(mmt018_db_connection_settings) do |db|
require File.join(__dir__, 'models', 'm_mt_018', 'ResultPlacementAssign.rb')
# do something with 'ResultPlacementAssign'
end
Sequel.connect(mmt024_db_connection_settings) do |db|
require File.join(__dir__, 'models', 'm_mt_024', 'PlatineMass.rb')
# do something with 'PlatineMass'
end
使用模型定义
class ResultPlacementAssign < Sequel::Model(:result_placement_assign)
end
和
class PlatineMass < Sequel::Model(:platine_mass)
end
不起作用。
它告诉我platine_mass 在数据库中不存在,因为它仍在使用第一个连接。
我是否遗漏了什么,或者如果模型定义在单独的文件中定义,是否真的无法告诉模型定义使用哪个数据库连接。
【问题讨论】: