あきくもちゃのブック
(139 keywords)

秋雲茶のお気に入り

  • おぎやす広辞苑 おぎやす広辞苑
  • マインディアからのお知らせ マインディアからのお知らせ
  • shinout.knowledge shinout.knowledge
  • DoppyDaijiroのブック DoppyDaijiroのブック

あきくもちゃのブックのメンバー

  • 西小倉パンデイロ 西小倉パンデイロ
  • 里香 里香
  • しん しん
  • なおき なおき

rails-migrationの履歴

リファレンス

DB構成をSQLを書かずに宣言できる仕組み。
初期値とか制約とか、索引とかも勿論作成できる。

コマンドは、rake db:migrate ってやると db/migrate 下にあるマイグレーションファイルを実行してDBに変更を加える。
勿論DBの設定(db/schema.rb)は設定しておく事が前提。

で、試してた中で分かったのが、一回 db:migrate をすると、その時のタイムスタンプを保持してて、次に db:migrate ってしても、以前から変更がなければ何も実行されないということ。

以前は、db/migrate 下のファイルを毎度実行するものだと思っていたので勘違いしていた。

フィールド追加

> rails g migration AddHogeToModel hoge:string
* db/migrate/ の下にフィールド追加用のファイルが作成される。
> rake db:migrate
* 変更反映

※どうやら自動生成は一部しか対応していなとか。

フィールド変更

参考

> rails g migration ChangeHogeToModel
でファイルを作って、

>vi [yyyymmddhhmiss]_change_hoge_to_model.rb
-------------------------
class ChangeHogeToModel < ActiveRecord::Migration
  def up
    change_column :model, :hoge, :string, :limit=>512
  end

  def down
    # ロールバック出来ない指定
    raise ActiveRecord::IrreversibleMigration
  end
end
-------------------------
:wq

> rake db:migrate
で変更反映

フィールド名変更

def up
  rename_column :model, :hoge, :fuga
end

テーブル名変更

def up
  rename_table :old_model, :new_model
end