RailsでDBのカラム名を変更する

バージョン

Rails 3.2.6
ruby 1.9.3p194
rake (0.9.2.2)

今回打ったコマンド

rails g migration RenameTypeToSchedule action:string
vim db/migrate/20121018151132_rename_type_to_schedule.rb
rake db:migrate

背景

"type"が予約後とはつい知らず、、にカラム名にしてしまった。
なのでカラムを変えなければ、、、

コマンド解説

マイグレーションファイルを生成

rails g migration Renameカラム名Toテーブル名 新しいカラム名と型

生成したマイグレーションファイルを編集

class RenameTypeToSchedule < ActiveRecord::Migration
def up
rename_column :schedules, :type, :action
# 呪文 :テーブル名, :旧カラム名, :新カラム名
end

def down
rename_column :schedules, :action, :type
# 呪文 :テーブル名, :新カラム名, :旧カラム名
end
end

upとdownで新旧カラムを書く位置が逆になっているのに気をつけよう

マイグレーションを更新

rake db:migrate

影響箇所

カラムを変更したら次のファイルの変更が必要になったよ
旧カラム => 新カラム

app/models/schedule.rb
app/views/schedules/_form.html.erb
app/views/schedules/index.html.erb
app/views/schedules/show.html.erb

なんかコマンドで一発変換できそうな気もするけど、あるのかな?
エラー見て手で直しちゃいました

おしまい