Это возможный переименовать столбец с помощью команды как:
script/generate migration AddColumnToTable column:type
? Спасибо.
Rails действительно имеет команду миграции в адаптере подключения ActiveRecord под названием rename_column
. Вы можете создать миграцию, а затем написать код самостоятельно. пример (MySQL):
script/generate migration rename_my_column_by_hand
Затем отредактируйте созданный файл:
class RenameMyColumnByHand < ActiveRecord::Migration
def self.up
rename_column :my_table, :old_name, :new_name
end
def self.down
rename_column :my_table, :new_name, :old_name
end
end
Он выполняет SQL как:
ALTER TABLE my_table CHANGE old_name new_name BIGINT;
Примечание Это только переименовывает столбец, он не переименовывает никакие ссылки, которые у вас есть на него в других таблицах .
Отличный вопрос. К сожалению, нет. См. Исходный код Rails 2.3.5:
lib/rails_generator/generators/components/migration/migration_generator.rb
Генератор миграции распознает только ключевые слова add
, remove
и to
/ из
.
Здесь я использую небольшую хитрость. Скажем, я хочу изменить столбец foo на bar.
Создайте миграцию, выполнив следующие действия.
Это очень хрупко. Если один шаг завершится неудачно, вы можете потерять данные.