Migration

一回登録までしてたのに、編集画面のキャッシュのおかげで飛んだやつ。なんか、どっか変かも。
はてなOperaに優しくない件について、どうしてやろうかと。
以下より。


DB作る場合はこいつを使うのがよさげ。
現在はこの辺を読み中。アーキテクチャを頭に入れるのは、私のような凡庸な頭脳ではなかなか難しいので、実践しながらやっている。
http://www-06.ibm.com/jp/developerworks/special/dlife/library/itm-rails2-redrails/
その過程でMigrationも使ってみた。
以下、メモ。

手順

新規プロジェクト

新規Railsプロジェクトを作成。

migrateのgenerate

Railsパースペクティブ下部にあるGenetors機能で(なければ例によって画面左下から)左のコンボでmigrateを選択し、右にcreate_projectnameとか適当な名前を入れてgo。
ここ適当な名前じゃまずいのかもしれんが、詳しいことはしらない。

migrateファイルの記述

なんかdb/migrateの下に変なファイルが出来るので、こんな感じで書く。

class CreateEmployee < ActiveRecord::Migration
  def self.up
    create_table :employees do |t|
      t.column :name, :string, :limit => 255, :null => false
      t.column :age, :integer
      t.column :birthday,  :date
      t.column :position, :string, :limit => 255
    end

    create_table :expressions do |t|
      t.column :name, :string, :limit => 255, :null => false
    end
  end

  def self.down
    drop_table :expressions
    drop_table :employees
  end
end

詳しくはこの辺を参照。
http://akimichi.homeunix.net/hiki/rails/?cmd=view&p=migration&key=migration
http://webos-goodies.jp/archives/50741819.html

db:migrateの実行

Railsパースペクティブ下部にあるRake Taskを選択して、左側のコンボボックスでdb:migrateを選択。
なんかこのRake Taskってバギーっぽいので、左側のコンボボックスに何も表示されないときがあるが、その場合は一度閉じてから開き直すと表示される。
で、右側は空で、go。ちなみに右側に--traceとか入れると詳細が出る。要は右はコマンドラインオプション。
DBは勝手に作られるので、SQLiteで事前に作る必要もない。
このコマンドの前に、database.ymlを適当に設定すること。私はこんなん。

development:
  adapter: sqlite3
  database: db/dev.db
test:
  adapter: sqlite3
  database: db/test.db
production:
  adapter: sqlite3
  database: db/prod.db
で、scaffold

あとは適当に。

感想

色々やりすぎてまとめられなくなってきているが、Rails結構でけーな、という感じ。
でも楽は楽。早めに規約を全て把握さえすれば、結構スムーズに使えそう。
EclipseRails機能は、まだJAVA系に比べればいまいちかな。コマンドラインでやる方がいいかもしれない。