我有一个包含复合索引的表,该索引不是通过 Rails 迁移创建的。现在,我需要创建一个 Rails 迁移来删除该索引并创建一个新索引,但我不一定知道索引的名称。
我知道可以在迁移步骤中获取表名和列名的列表。是否可以获取特定表上的索引名称列表?或者,换个角度看,是否可以删除表上的所有 索引?还是编写我自己的特定于数据库的 SQL 查询来获取此信息的唯一选择?
最佳答案
您可以通过以下方式获取表上所有索引的详细信息:
ActiveRecord::Base.connection.indexes('tablename')
这将返回一组 ActiveRecord::ConnectionAdapters::IndexDefinition
对象,每个对象都有一个 #name
和 #columns
方法。
关于ruby-on-rails - 使用 Rails Migrations 在不知道名称的情况下删除索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334714/