开发者

Rails: How to add add_index to existing table

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::Migrati开发者_JAVA百科on
  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.


The self.up method is correct. Use this for your self.down:

remove_index :units, :column => :lesson_id


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


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜