2013年6月22日土曜日

Rails で データベース変更

migration script 作成

コマンド
rails g migration AddColumnToTableName
最後のAddColumnToTableNameのところがクラス名になる。 キャメルケースで記述。
実行するとこんな感じ
  invoke  active_record
  create    db/migrate/20130622055021_add_column_to_table_name.rb
作成されるファイルはこんな感じ
class AddColumnToTableName < ActiveRecord::Migration
  def up
  end

  def down
  end
end

migration script 編集

up に更新内容、down に戻すときの内容を記述。 項目の追加・削除だけの場合は change メソッドでOK。 rails くんがよろしくやってくれます。
class AddColumnToTableName < ActiveRecord::Migration
  def change
    add_column :table_name, :column_name, :string #項目追加: テーブル名, 項目名, 型名
    rename_column :table_name, :before_name, :after_name #項目名変更: テーブル名, 旧項目名, 新項目名
  end
end

add_column の引数は テーブル名、カラム名、型 を指定します。

※2013年7月19日: 間違いまくっていたのでなおした

テーブル定義以外は修正してくれないみたいなので、modelなどは自分で修正する必要があります。

  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly