めも帖

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

社員名簿(2)

DBのことがよくわらかないままなので、そこを調べながらいきます。
一度、phpMyAdminで作ってみたので、これをRailsからDBのテーブルを用意してみることにします。

ディレクトリを用意しておく

ここらへんは、どこでもいいらしい。

mkdir sample
cd sample

railsコマンドで生成

雛形を作るのは同じ。ここら辺もすごいと思う。

rails address

config/database.yml

MySQLで作ってみた(他のDBでも指定できるみたい)

vi config/database.yml

modelを作る

このgenerateもいろいろなものが作れるらしい

script/generate model person

migrateを使用する

このmigrateは、テーブルを生成してくれる。
また、バージョン管理や、スキームも残しておいてくれる。たぶん、ここら辺が変更に強いといわれる原因じゃないかと。
参考「http://tam.qmix.org/wiki/Migration.html

vi db/migrate/001_create_people.rb 
class CreatePeople < ActiveRecord::Migration
  def self.up
    create_table :people do |t|
    t.column :join, :date
    t.column :name, :string
    t.column :furi, :string
    t.column :birth, :date
    t.column :sex, :string
    t.column :no, :integer
    t.column :team, :string
    t.column :photo, :string
    t.column :address, :string
    t.column :tel, :string
    t.column :mail, :string
    t.column :url, :string
    end
  end

  def self.down
    drop_table :people
  end
end

rakeの実行

rake migrate

その結果

mysql> describe people;
+---------+--------------+------+-----+---------+----------------+
| Field   | Type         | Null | Key | Default | Extra          |
+---------+--------------+------+-----+---------+----------------+
| id      | int(11)      | NO   | PRI | NULL    | auto_increment | 
| join    | date         | YES  |     | NULL    |                | 
| name    | varchar(255) | YES  |     | NULL    |                | 
| furi    | varchar(255) | YES  |     | NULL    |                | 
| birth   | date         | YES  |     | NULL    |                | 
| sex     | varchar(255) | YES  |     | NULL    |                | 
| no      | int(11)      | YES  |     | NULL    |                | 
| team    | varchar(255) | YES  |     | NULL    |                | 
| photo   | varchar(255) | YES  |     | NULL    |                | 
| address | varchar(255) | YES  |     | NULL    |                | 
| tel     | varchar(255) | YES  |     | NULL    |                | 
| mail    | varchar(255) | YES  |     | NULL    |                | 
| url     | varchar(255) | YES  |     | NULL    |                | 
+---------+--------------+------+-----+---------+----------------+
13 rows in set (0.01 sec)

というわけで、しっかりテーブルが出来ます。すごいなあ。

scaffoldの実行

ruby script/generate scaffold person

結果

きちんと動くんだけれど、URLがみたら、複数形のpeopleになっていて驚いた。
ただ単に、person「s」とかになるものだと思っていたので。
DBが変更になったり、なにをテーブルに設定したのかが、残っていること、バージョン管理できることなどなど、ここらへんが実は強みなんだろうなあ、と思いました。