Как удалить столбец из моей модели Rails?

Мне нужно удалить несколько столбцов из моей модели рельсов, которую я уже создал, и некоторые строки в этой модели. Как это сделать? Любые ссылки, которые содержат детали для изменения схемы в рельсах? Я использую rails версии 3.

Ответ 1

Чтобы удалить столбец базы данных, необходимо создать миграцию:

script/rails g migration RemoveColumns

Затем в методе класса self.up удалите столбцы:

def self.up
  remove_column :table_name, :column_name
end

Вы также можете добавить их обратно в метод класса self.down:

def self.down
  add_column :table_name, :column_name, :type
end

Rails Guide для этого более подробно.

Ответ 2

Если вам известны столбцы, которые вы хотите удалить, вы можете использовать соглашение: Remove..From.. при наименовании ваших миграций. Кроме того, вы можете включать имена столбцов при выполнении команды миграции.

Форма команды:

rails g migration Remove..From.. col1:type col2:type col3:type

Например:

rails g migration RemoveProjectIDFromProjects project_id:string

создает следующий файл миграции:

class RemoveProjectIdFromProjects < ActiveRecord::Migration
  def self.up
    remove_column :projects, :project_id
  end

  def self.down
    add_column :projects, :project_id, :string
  end
end

Ответ 3

В качестве альтернативы с помощью команды Add измените только Add на Remove:

Единая колонка:

rails g migration RemoveColumnFromTable column:type

Несколько столбцов:

rails g migration RemoveColumn1AndColumn2FromTable column1:type colummn2:type