检查JSONB索引是否存在于铁轨中



我们在表influencers上有一个索引,称为ind_unique_id。这是迁移文件中的语句:

CREATE UNIQUE INDEX ind_unique_id ON influencers(((ind->>'id')::TEXT));

我可以看到索引在pgadmin中查找。但是,如果我通过Rails方法进行检查index_exists?返回false

Influencer.connection.index_exists?(:influencers, name: "ind_unique_id")

我还尝试将其作为符号传递:

Influencer.connection.index_exists?(:influencers, :ind_unique_id)

他们都没有返回true。我做错了什么?

您检查所需的列,而不是索引本身的名称。像这样

Influencer.connection.index_exists?(:influencers, :some_column_name)

您也可以检查多列

Influencer.connection.index_exists?(:influencers, [:some_column_name, :some_other_column_name])

但是还有另一种方法可以执行您尝试做的名为index_name_exists?

Influencer.connection.index_name_exists?(:influencers, :ind_unique_id)

index_exists的文档?

index_name_exists的文档?

最新更新