module ActiveRecord::ConnectionAdapters::SchemaStatements

def remove_index(table_name, column_name = nil, **options)

For more information see the {"Transactional Migrations" section}[rdoc-ref:Migration].

Concurrently removing an index is not supported in a transaction.

Note: only supported by PostgreSQL.

remove_index :accounts, name: :by_branch_party, algorithm: :concurrently

Removes the index named +by_branch_party+ in the +accounts+ table +concurrently+.

remove_index :accounts, if_exists: true

don't exist.
Checks if the index exists before trying to remove it. Will silently ignore indexes that

remove_index :accounts, :branch_id, name: :by_branch_party

Removes the index on +branch_id+ named +by_branch_party+ in the +accounts+ table.

remove_index :accounts, name: :by_branch_party

Removes the index named +by_branch_party+ in the +accounts+ table.

remove_index :accounts, column: [:branch_id, :party_id]

Removes the index on +branch_id+ and +party_id+ in the +accounts+ table if exactly one such index exists.

remove_index :accounts, column: :branch_id

Removes the index on +branch_id+ in the +accounts+ table if exactly one such index exists.

remove_index :accounts, :branch_id

Removes the index on +branch_id+ in the +accounts+ table if exactly one such index exists.

Removes the given index from the table.
def remove_index(table_name, column_name = nil, **options)
  return if options[:if_exists] && !index_exists?(table_name, column_name, **options)
  index_name = index_name_for_remove(table_name, column_name, options)
  execute "DROP INDEX #{quote_column_name(index_name)} ON #{quote_table_name(table_name)}"
end