I wrongly named a column hased_password instead of hashed_password.
How do I update the database schema, using migration to rename this column?
Sommaire |
I wrongly named a column hased_password instead of hashed_password.
How do I update the database schema, using migration to rename this column?
rename_column :table, :old_column, :new_column
Update:
You ll probably want to create a separate migration to do this. (Rename FixColumnName as you will)
script/generate migration FixColumnName # creates db/migrate/xxxxxxxxxx_fix_column_name.rb
Then edit the migration to do your will.
# db/migrate/xxxxxxxxxx_fix_column_name.rb class FixColumnName < ActiveRecord::Migration def self.up rename_column :table_name, :old_column, :new_column end def self.down # rename back if you need or do something else or do nothing end end
An update for Rails 3.1
http://guides.rubyonrails.org/migrations.html http://guides.rubyonrails.org/migrations.html
rails g migration FixColumnName class FixColumnName < ActiveRecord::Migration def change rename_column :table_name, :old_column, :new_column end end
If you happen to have a whole bunch of columns to rename, or something that would have required repeating the table name over and over again.
rename_column :table_name, :old_column1, :new_column1 rename_column :table_name, :old_column2, :new_column2 ...
You could use change_table to keep things a little neater.
class FixColumnNames < ActiveRecord::Migration def change change_table :table_name do |t| t.rename :old_column1, :new_column1 t.rename :old_column2, :new_column2 ... end end end
Thank you, Luke && Turadg, for bringing up the topic.
Then just db:migrate as usual or however you go about your business.
An update for Rails 4
While creating a Migration as for renaming a column, Rails 4 generates a change method instead of up and down as mentioned in the above answer. The generated change method is as below :
$ > rails g migration ChangeColumnName
which will create a migration file similar to this :
class ChangeColumnName < ActiveRecord::Migration def change rename_column :table_name, :old_column, :new_column end end
License : cc by-sa 3.0
http://stackoverflow.com/questions/1992019/how-can-i-rename-a-database-column-in-a-ruby-on-rails-migration