Rails:如何将add_index添加到现有表

时间:2011-05-24 09:26:44

标签: ruby-on-rails indexing migrate

我已经迁移了一个名为units的表,其中有几列。我想知道如何使用cmd将独立的“add_index”迁移到此表中。这段代码是否正确:

class AddIndexToUnits < ActiveRecord::Migration
  def self.up
    add_index :units, :lesson_id
  end

  def self.down
    remove :units
  end
end

我有一种感觉,自我感觉可能是错误的,我不确定。

3 个答案:

答案 0 :(得分:14)

self.up方法是正确的。将此用于你的自我。

remove_index :units, :column => :lesson_id

答案 1 :(得分:10)

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

答案 2 :(得分:2)

要删除索引,必须使用与self.up的remove_index具有相同的表和列规范的add_index。所以:

def self.down
  remove_index :units, :lesson_id
end

多列索引示例如下:

def self.down
  remove_index :units, [:lesson_id, :user_id]
end