自定义 Table 映射 Sequel gem

Custom Table Mapping with Sequel gem

一直在转动我的轮子。如何使用 sequel gem 指定自定义 table 映射?

我已经完成了以下操作

init.rb

OTHER_DB = Sequel.connect(:adapter => 'tinytds', :host => 'host1', :database => 'mydatabase', :user => 'myuser', :password => 'mypassword')

Namespace::MyModel.db = OTHER_DB

MyModel.rb

module Namespace
  class MyModel < Sequel::Model('myschema.MyModelTable')
  end
end

它抱怨构造函数中的 'myschema.MyModelTable'。我也试过 set_dataset('myschema.MyModelTable') 但没有成功。

文档似乎对如何执行此操作有点不透明

我用下面的代码解决了这个问题

module Namespace
  class MyModel < Sequel::Model(Sequel.qualify(:myschema,:MyModelTable))
  end
end

可以在测试中找到更多示例here

这样做:

class MyModel < Sequel::Model(:myschema__MyModelTable)
end

有两个下划线。这是 Sequel 的 tinytds 适配器用来指定模式的约定。参见第 194 行:https://github.com/jeremyevans/sequel/blob/master/lib/sequel/adapters/tinytds.rb