Rails勉強会@東京第29回に参加してきた#2
結構長くなるんで,ログの続きを分割.
rake taskを見てみる
ひとまず流す
- edge railsで見てみることに.
- とりあえずdiffをとっておく.
% rake -T > ../rake_tasks_2-0-2 % rake rails:freeze:edge % rake -T > ../rake_tasks_edge % diff ../rake_tasks_2-0-2 ../rake_taskes_edge
1c1 < (in /home/rust/program/ruby/gitexample3) --- > (in /home/rust/program/ruby/gitexample) 11a12 > rake db:migrate:down # Runs the "down" for a given migratio... 13a15 > rake db:migrate:up # Runs the "up" for a given migration ... 33a36,39 > rake gems # List the gems that this rails applic... > rake gems:build # Build any native extensions for unpa... > rake gems:install # Installs all required gems for this ... > rake gems:unpack # Unpacks the specified gem into vendo... 49c55 < rake test # Test all units and functionals --- > rake test # Run all unit, functional and integra... 55a62,64 > rake time:zones:all # Displays names of all time zones rec... > rake time:zones:local # Displays names of time zones recogni... > rake time:zones:us # Displays names of US time zones reco...
-
- edge railsとは開発版らしい.
- [rake -D RAKE_TASK]でメッセージ全文表示できるそうな.
up | 1つschema_versionを上げる |
down | 1つschema_versionを下げる |
redo | 最後のmigrationをrevertして再実行 |
reset | create databaseからやり直す |
- rake fixtures
- identify:fixtureにある&$58;oneなどから固有のIDを取得する(らしい.まだ未調査)
- rake db:rollback
- migrationを一つ戻す
- rake time:
- zone:local:ローカルの(で設定できる?)タイムゾーンを表示
- rake db:schema:dump
- db/schema.rbにschemaをdumpする(そのまま)
- rake db:test:clone[_structure]
- いまのenvironmentのデータベースからテスト用のデータベースを構築[構造のみ]
- rake db:test:purge
- drop databaseを実行
:rake db:test:truncateする
- rake db:version
- 最新のmigration versionを表示する
- rake notes[:todo|:fixme|:optimize]
- ソースコード中に記載されたコメントを表示する[#TODO comments....|#FIXME comments....|#OPTIMIZE comments....]
-
- コメント自身はSourceAnnotationExtractor.enumerate("XXXX")で拾っている.
migration周りの変更点まとめ
- migrationのversion管理が,番号からタイムスタンプになってた.
-
- 20080414124549_XXXXXXXXXX.rb
- ただし旧記法(001_XXXXXXXXX.rb)と共存は可能.
- ソート順では001, 002の方が先に来る
- タイムスタンプになってるので開発環境のタイムゾーンに注意が必要になるかも.
-
rake gems関連
- 準備
- config/environment.rbのconfig.gemsに必要なgemを記述する.
config.gems = [ Ruby::GemDependency.new 'uuidtools' ]
- rake gems:install
- 上記configで指定したgemをシステムにインストールする
- rake gems:unpack
- インストールされているgemをvender配下にコピーする.環境をひとまとめにできる.deploy時にも便利そう.
- denendencyを簡単に書けるようにして欲しいよねー的な
- この機能によってgemのdeployができるようになると便利そう.
その他
- データベースをfixtureにするpluginがあるらしい.
- initializersに書くかenvironment.rbに書くか,どちらが良いんだろうか.
- rak 'words'でいい具合にgrep検索できるようだ.結構便利.
- config.plugins=[]でpluginの指定やload順序を指定可能らしい.
まとめ
ためになりました.もっといろいろ勉強しないといけないなぁと,さらに思いました.できれば発表などできるようになりたいな.