Reputation: 14086
I already migrated a table called units with several columns. I was wondering how to migrate in a stand alone 'add_index' to this table using the cmd. Is this code correct:
class AddIndexToUnits < ActiveRecord::Migration
def self.up
add_index :units, :lesson_id
end
def self.down
remove :units
end
end
I have a feeling the self.down could be wrong, I am unsure.
Upvotes: 15
Views: 13488
Reputation: 6068
To remove an index, you must use remove_index
with the same table and column specification as the self.up's add_index
has. So:
def self.down
remove_index :units, :lesson_id
end
A multi-column index example would be:
def self.down
remove_index :units, [:lesson_id, :user_id]
end
Upvotes: 2
Reputation: 9764
Almost
class AddIndexToUnits < ActiveRecord::Migration
def self.up
add_index :units, :lesson_id, :name=>'lesson_index'
end
def self.down
remove_index :units, 'lesson_index'
end
end
Upvotes: 10
Reputation: 2128
The self.up method is correct. Use this for your self.down:
remove_index :units, :column => :lesson_id
Upvotes: 14