使用 ActiveRecord 在 PostgreSQL 中创建包含索引列和“INCLUDE”列的索引

hrd*_*rbl 10 postgresql ruby-on-rails rails-activerecord

我想要创建的是索引之一,其中一些列被索引,另一些列被包含。PostgreSQL 在其文档中描述了这种索引

创建索引的 SQL 查询看起来像CREATE INDEX tab_x_y ON tab(x) INCLUDE (y);

在此处查看 ActiveRecord PostgreSQL 适配器文档

我没有看到任何使用此INCLUDE列功能的选项。

我必须将其作为原始 SQL 查询运行吗?还有别的办法吗?

笔记

  1. 我不是问如何运行查询或查询将使用哪个索引。
  2. 我不是问如何使用 ActiveRecord 创建常规索引。
  3. 我不是问如何使用 ActiveRecord 创建迁移。
  4. 我特别想要有关如何使用特定选项创建特定类型索引的信息。

Joã*_*res 4

嘿,我没有设法使用 add_index 也没有使用created_index,所以我只使用原始 SQL。

就是这样:

def up
    execute <<-SQL
      create index my_index
      on table (column1, column2, ..., columnN)
      include (column1, column2, columnN)
    SQL
end 
Run Code Online (Sandbox Code Playgroud)