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 end add_index :documents, :identifier, :unique => true end def self.down remove_index :documents, :identifier drop_table :documents end end 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 redundant?
on 2007-05-23 22:22
on 2007-05-24 01: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.