おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

rails勉強会第29回に参加しました(後半)

Rails' Wiki - Rails勉強会@東京第29回

後半はrakeについてです。

  • edgeで追加されたrake
  • 2.0から追加されたrake

を中心に、rakeを一通り見てゆきました。まず、

rake rails:freeze:edge

でedgeをインストール。

edgeで追加されたrake

edgeでは、migrationファイル名が20080420...みたいなファイル名になってたのに驚く。管理しやすいのかなあ?
とりあえず、migration時のバージョン設定が

db:migrate VERSION=2008...

みたいになって面倒になった。その影響か、まず

rake db:migrate:up
rake db:migrate:down

のように、相対指定でのマイグレーション用rakeができてた。

また、

rake time:zones:all

のような、timezoneを表示するrakeもできていた。

rake time:zone:us

これは自分のプロジェクトのタイムゾーンを表示・・・と思いきや、UnitedStatesのタイムゾーンを表示するrake。

他にはgem系のrakeもできてた。

rake gems

railsの中で使われているgemを表示する。

rake gems:install

必要なgemsがインストールされていない場合、インストールしてくれる。
必要なgemsとして登録するにはconfig/environmentに記述する方法がある。他にもあるのかも?
デプロイするときに便利そう。

rake gems:unpack

installされたgemsをvendor/gemsに入れる

rake abort_if_pending_migration

これはよくわからんかった。

2.0で使えるrake

2.0から使えるようになったかどうかは調べるのが手間なので、2.0で使えるというくくりでお届けします。

rake db:create

config/database.ymlをみてデータベースを作ってくれる。便利。

rake db:create:all

db:createだとRAILS_ENVのやつしか作らないけど、これは全部(test, development, production)作る。

rake db:migrate:redo

一つ前のversionに戻してから, もう一度migrateしてくれる。あんまり使いどころがわからない。

rake db:charset

DBの文字コードを返す。mysqlのみ対応?

rake db:reset

テーブルを消してmigrate

rake reset

db消して、schemaを見て作り直す。

rake db:collation

よくわからん。ちなみにcollationは照合という意味らしい。

rake db:drop

読んで字のごとく。dbをdrop。

rake db:fixtures:identify

fixtureの指定したデータのIDかlabelを表示。なんに使うのかはよくわからない。

rake db:fixtures:load

指定されたenironmentのdbにfixtureのデータを入れる。

rake db:rollbadk

versionを一つ戻す。STEP=nで戻す段階を指定できる。db:migrate:downと一緒かな?

rake db:schema:dump

schema.rbを作る。使いどころがわからない・・・

rake db:structure:dump

dbのテーブル構成をdumpしてsqlにしてくれる。mysqlならできるけどsqliteじゃできない。

rake db:test:clone

current environmentのdatabaseからtestのdatabaseへコピー

rake db:test:clone_structure

developmentのdatabaseからtestへ。

rake db:test:purge

テーブルを消す。databaseは残る。

rake db:version

versionを表示(edgeだと2008....)

rake notes

#TODOとか#FIXMEとか書いとくとそれを列挙してくれる。これは便利かも。
annotations.rakeをいじると#ATODEとか自由に追加できる。

rake rails:freeze:gems

ローカルにあるgemの中身をvendor配下に格納

rake rails:unfreeze

freezeしたやつを消す

rake routes

routes.rbの設定で実際にどんなルートになったかを表示。たくさんでるからgrepと併用するといい。

rake test:plugins

プラグインのテスト。まともに実行できないプラグインが多いらしい。

感想

これまで使ってなかったけどこれは使えそうだなーっていうのはこれくらいかな。

  • db:create:all
  • db:reset
  • db:fixtures:load
  • notes

edgeはgems:installが簡単にできたら使えそう。

追記

僕のエントリより見やすいエントリを見つけたので貼っておきます。

Rails勉強会@東京第29回に参加してきた#2 - なんとなく日記

あと関連情報
edge railsでのgem依存性の記述方法 - おもしろWEBサービス開発日記