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]でメッセージ全文表示できるそうな.

:rake db:migrate:[up|down|redo|restart]:データベースのマイグレーションを操作する |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順序を指定可能らしい.

##まとめ ためになりました.もっといろいろ勉強しないといけないなぁと,さらに思いました.できれば発表などできるようになりたいな.

 
comments powered by Disqus