とりあえずrake generate modelでモデルの定義をするとmodel classとそのUnit Testとdbのmigration fileをわんさか作ってくれます。DBのmigration手順はここ(Rails Guide - Active Record Migrations)に良くまとまっていますが、必要に応じてindexやrelationなんかを追加しつつrake commandで簡単にDBを作る事ができます。rake db:migrateでdb/migrate以下に作られたmigration fileを元にじゃんじゃかテーブルを作ります。以下の順序で行われるっぽい。
- db/migrate以下のファイルからテーブルを作成
- データベースからdb/schema.rbを作る
少しハマった…。
rakeのコマンドとかもまだ全く覚えていないのですが、rake --tasksで他のタスクがぞろぞろでてきてくれます。rake -Pで親タスクやその依存関係とかも出力してくれるっぽい。
例えば上記のdb:migrate:resetは3つのタスクを組み合わせたものらしい。
rake db:migrate:reset db:drop db:create db:migrateまた、rake test:allでUnit Testの全実行をしてくれるっぽい。
db/seed.rbに開発環境用のデータを用意できる。rake consoleから実行するのと同じように$class.new(:$field1 => $value)みたいな感じで書ける。RubyのScriptなのでファイルから読み込んでLoopでオブジェクト生成とかも非常に簡単にできそう。rake db:seedだと単純にseed.rbからデータをLoadする。rake db:setupだとスキーマごと作り直してからデータをLoadする。ちょこちょこデータファイルを変更する時は後者を使う。
あ、後作ったModelやそのObjectはrails consoleから確認してったら超効率よくできた。こんな感じで一通りモデルを作って、DBに反映させて、テストして、開発用データの準備までが半日かからずにできちゃいました。DBとModelの定義を固定して厳しい命名規則を受け入れるだけでこれだけの恩恵をうけられるとは。明日はRSpecを導入する予定。Rails楽しいね。
0 件のコメント:
コメントを投稿