Rails: как добавить add_index в существующую таблицу - PullRequest
15 голосов
/ 24 мая 2011

Я уже перенес таблицу под названием юниты с несколькими столбцами. Мне было интересно, как перенести автономный «add_index» в эту таблицу с помощью cmd. Является ли этот код правильным:

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

  def self.down
    remove :units
  end
end

У меня такое чувство, что самооценка может быть неправильной, я не уверен.

Ответы [ 3 ]

14 голосов
/ 24 мая 2011

Метод self.up правильный.Используйте это для вашего self.down:

remove_index :units, :column => :lesson_id
10 голосов
/ 24 мая 2011

Почти

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 голосов
/ 24 мая 2011

Чтобы удалить индекс, вы должны использовать remove_index с той же спецификацией таблицы и столбца, что и у self.up's add_index.Итак:

def self.down
  remove_index :units, :lesson_id
end

Примером индекса из нескольких столбцов будет:

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