如何在我的续集类中定义我的表所有者/架构?

Gat*_*tor 2 ruby sequel

我试图查询的表名为cache.dashboardstats

我的模型是:

class Dashboard < Sequel::Model(:dashboardstats)
 set_schema do
    set_primary_key :dashboardstatid
  end
end
Run Code Online (Sandbox Code Playgroud)

这创建了一个select * from "dashboardstats";

如何定义“缓存”的所有者/架构,以便我的查询变为:

select * from cache."dashboardstats";

Jer*_*ans 5

您可以在符号内使用双下划线,或使用其中一种限定方法来表示限定标识符:

:cache__dashboardstats
Sequel.qualify(:cache, :dashboardstats)
:dashboardstats.qualify(:cache)
Run Code Online (Sandbox Code Playgroud)

您可以在模型代码中使用它,例如:

class Dashboard < Sequel::Model(:cache__dashboardstats)
end
Run Code Online (Sandbox Code Playgroud)

请注意,我遗漏了您的 set_schema 调用。除非您调用 create_table 或类似方法,否则永远不应该调用 set_schema,否则它不会执行任何操作。set_schema 里面的 set_primary_key 并没有按照你的想法做,Sequel 通常可以正确确定主键,所以一般不会手动指定。