Как удалить столбец из моей модели Rails? - PullRequest
49 голосов
/ 16 октября 2010

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

Ответы [ 3 ]

58 голосов
/ 16 октября 2010

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

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

Руководство по рельсам для этого более подробно описано.

41 голосов
/ 26 августа 2011

Если вам известны столбцы, которые вы хотите удалить, вы можете использовать соглашение: 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
4 голосов
/ 05 февраля 2014

С помощью альтернативной команды как Add, только изменить Add на Remove:

Один столбец:

rails g migration RemoveColumnFromTable column:type

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

rails g migration RemoveColumn1AndColumn2FromTable column1:type colummn2:type
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...