ruby-on-rails – 使用Rails迁移删除索引而不知道其名称

我有一个表,其中的复合索引不是通过rails迁移创建的.现在,我需要创建一个rails迁移来删除这个索引并创建一个新索引,但我不一定知道索引的名称是什么.

我知道可以在迁移步骤中获取表名和列名列表.是否可以获取特定表上的索引名称列表?或者,从另一个角度来看,是否可以删除表上的所有索引?或者是编写我自己的特定于数据库的SQL查询来获取此信息的唯一选项?

解决方法

您可以通过以下方式获取表中所有索引的详细信息:
ActiveRecord::Base.connection.indexes('tablename')

这将返回一个ActiveRecord :: ConnectionAdapters :: IndexDefinition对象数组,每个对象都有一个#name和#columns方法.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...