おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

カラムを追加/削除するマイグレーションファイルを自動生成

これまで、modelと一緒に自動生成されるもの以外の、カラムを追加する類いのマイグレーションファイルは手書きしていたんだけれど、どうやらrails2.0以降はこれも自動化できるみたい。というわけでやり方をメモ。

追加するとき

こんな風に書くと

script/generate migration AddEmailAndDeletedToUsers email:string deleted:boolean

こんなファイルが出来る。

class AddEmailAndDeletedToUsers < ActiveRecord::Migration
  def self.up
    add_column :users, :email, :string
    add_column :users, :deleted, :boolean
  end

  def self.down
    remove_column :users, :deleted
    remove_column :users, :email
  end
end

削除するとき

こんな風に書くと

script/generate migration RemoveEmailAndDeletedFromUsers email:string deleted:boolean

こんなファイルが出来る

class RemoveEmailAndDeletedFromUsers < ActiveRecord::Migration
  def self.up
    remove_column :users, :email
    remove_column :users, :deleted
  end

  def self.down
    add_column :users, :deleted, :boolean
    add_column :users, :email, :string
  end
end

参考

Railsレシピブック 183の技

Railsレシピブック 183の技