めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

社員名簿(3)

migration機能

先日つかった「migrate」というのは、migration機能というらしい。これは、DBをSQLで管理するのではなくて、ActiveRecordの規約に沿ったテーブル名などにしてくれて、DBを意識しないところがいいところらしい。たしかに、ぜんぜんとは言わないけれど、意識はしなかった(というか出来なかった?)

migration機能はSubversionと一緒に使える

-cというオプションで、Subversionと一緒に使えるそうです(まだSubversionの設定していない...)。script/generate -hで書かれています。

テーブルを追加する

script/generate model team
vi db/migrate/002_create_teams.rb
002_create_teams.rb
class CreateTeams < ActiveRecord::Migration
  def self.up
    create_table :teams do |t| 
    t.column :name, :string, :default => "部署名"
    end 
  end 

  def self.down
    drop_table :teams
  end 
end
rake migrate
結果
mysql> describe teams;
+-------+--------------+------+-----+--------------+----------------+
| Field | Type         | Null | Key | Default      | Extra          |
+-------+--------------+------+-----+--------------+----------------+
| id    | int(11)      | NO   | PRI | NULL         | auto_increment | 
| name  | varchar(255) | YES  |     | 部署名       |                | 
+-------+--------------+------+-----+--------------+----------------+
2 rows in set (0.00 sec)