RailsでDBのカラム名を変更する
今回打ったコマンド
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
# 呪文 :テーブル名, :旧カラム名, :新カラム名
enddef 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
なんかコマンドで一発変換できそうな気もするけど、あるのかな?
エラー見て手で直しちゃいました
おしまい