2014-09-10 2 views
5

Я хотел бы переименовать столбец таблицы из консоли rails, не записывая никаких переносов.Как я могу переименовать столбец из консоли rails без миграции?

как я могу это сделать?

+4

Вы не должны делать это без миграции, это не лучшая практика, а также рельсы. –

+0

Я знаю, что это была очень неприятная проблема с синхронизацией ... – Boti

ответ

4
rails dbconsole 
ALTER TABLE name RENAME column TO column 
+1

Просто боковое примечание @Boti, ваш 'db/schema.rb' не будет обновлен с помощью этого метода, что потенциально может вызвать проблемы при развертывании. Если есть такая проблема, вы можете запустить «rake db: schema: dump» после этого, чтобы ваш файл схемы был синхронизирован с текущей структурой базы данных (и именованием). –

0
  1. запустить в консоли: rails g migration ChangeColName
  2. редактировать файл дб/мигрировать/"метки" _change_col_name.rb вставки в изменении четкости -

    rename_column :tablename, :old_column_name, :new_column_name -save 
    
  3. запуске в консоли : rake db:migrate :-)

+1

Я не уверен, что вы путаете «консоль» с «терминалом», но то, что означало OP, это то, как это сделать в реальной консоли rails (IRB-интерфейс), не записывая и не запуская файл миграции. –

15

Я решил запустить это с консоли:

ActiveRecord::Base.connection.rename_column :tablename, :old_column_name, :new_column_name 
+1

Лучший ответ. Он позволяет выполнять команды так же, как и внутри миграции Rails. –

Смежные вопросы