既存DBにカラム追加するときのマイグレーション

DB作成はなんぼでも情報あるけどalterとかaddとかしたいときは少ないのー。

booksテーブルを作成

./script/generate model Book

booksテーブルにカラム作成するためにファイル編集

vi db/migrate/20081129110040_create_books.rb
class CreateBooks < ActiveRecord::Migration
  def self.up
    create_table :books do |t|
        t.string     :title
    end
  end

以下略

DB作成

rake db:create

migrate

rake db:migrate

booksテーブルが出来る。カラムはidとtitleのみ

booksテーブルにnameカラムを追加するためにファイル編集

./script/generate migration books_add_name
vi db/migrate/20081129110451_books_add_name.rb
class BooksAddName < ActiveRecord::Migration
  def self.up
      add_column(:books, :name, :text, :default=>'')
  end

  def self.down
      ramove_column(:books, :name)
  end
end

migrate

rake db:migrate

頭のいいやり方

ファイル編集する以外にも、

./script/generate model Book title:string name:text

でいける


本番になるまでは、元ファイル書き換えて

rake db:migrate VERSION=0
rake db:migrate

でさくっと作り直したほうが早い