我正在使用续集来查询来自不同数据库的信息。使用以下代码
Cypress.log({ name: 'debug', message: length })
很棒。但是,如果我尝试将模型定义放在单独的文件中,以便在需要时需要它们,则似乎只有第一个数据库连接有效。 因此,将上面的代码更改为
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
在数据库中不存在,因为它仍在使用第一个连接。
我是否缺少某些内容,或者是否真的没有办法告诉模型定义要使用的数据库连接(如果它是在单独的文件中定义的)。
答案 0 :(得分:0)
通过将数据库或数据集参数传递给Sequel::Model()
,可以告诉Sequel给定模型使用哪个数据库。通常,您应该将数据库对象分配给常量:
DB1 = Sequel.connect(mmt018_db_connection_settings)
DB2 = Sequel.connect(mmt024_db_connection_settings)
class ResultPlacementAssign < Sequel::Model(DB1[:result_placement_assign]); end
class PlatineMass < Sequel::Model(DB2[:platine_mass]); end