Rails 2.0 での add_column / remove_column の自動生成
既存のテーブルに列を追加したい場合、ジェネレーターで migration add_column とかやるのだけど、Rails 2.0 では少し便利になって、以下のように書けるらしい。
>script/generate migration AddPriceToProduct price:decimal
Addカラム名Toモデル名、の後にカラムのタイプ指定というフォーマット。これを実行すると db/migrate/20080427070207_add_price_to_product.rb のような名前で以下のマイグレーションファイルが自動生成される。
class AddPriceToProduct < ActiveRecord::Migration def self.up add_column :products, :price, :decimal end def self.down remove_column :products, :price end end
このカラムにさらに有効桁数や初期値などを設定したい場合は以下のように書き足せばいい。
class AddPriceToProduct < ActiveRecord::Migration def self.up add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0 end def self.down remove_column :products, :price end end
また、Removeカラム名Fromモデル名のようにして、カラムを削除するマイグレーションファイルも生成できるらしい。
Ruby on Rails 2.0 その後の発見