Мне нужно удалить несколько столбцов из моей модели рельсов, которую я уже создал, и некоторые строки в этой модели. Как это сделать? Любые ссылки, которые содержат детали для изменения схемы в рельсах? Я использую rails версии 3.
Как удалить столбец из моей модели Rails?
Ответ 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