Forum: Ruby on Rails Migrations add_index

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
Robert W. (Guest)
on 2007-05-24 00:22
(Received via mailing list)
Hi all,

If I have the following migration:

class CreateDocuments < ActiveRecord::Migration
  def self.up
    create_table :documents do |t|
      t.column :created_at, :datetime
      t.column :identifier, :string
      t.column :file_format, :string

    add_index :documents, :identifier, :unique => true

  def self.down
    remove_index :documents, :identifier
    drop_table :documents

Is it necessary (or recommended) to include the remove_index line in
the self.down method?  I realize that dropping a table in MySQL will
automatically drop any indices on the table.  However, I'm not sure if
this is the case for all databases.  So would it be considered "good
style" to include the remove_index even though it's normally a bit
Keynan P. (Guest)
on 2007-05-24 03:08
it is good style to remove foreign indexes as apposed to local indexes.
All modern DB's will drop the index pertaining to a column in this
table. The problem arises when an index in table "cats" is the foreign
key pointing to the id of table "dogs"

the index in "cats" must be removed to drop the "dogs" table.
This topic is locked and can not be replied to.