DBIx::Class::Schema::Loader で 34 秒くらいで Schema クラス生成
既存 DB から以下のワンライナー一発で DBIx::Class の Schema が生成できる
$ perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib -e 'make_schema_at "Hoge::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:hoge","user","password"]'
やりかた。
- まず、クラスを作りたいディレクトリ付近に移動
- さっきのコマンドの dump_to_dir: の箇所にクラスツリーの起点となるディレクトリを指定
- make_schema_at の第一引数に生成する Schema のパッケージ名を指定
- 外部キー制約とかを考慮して has_many とか belongs_to とかを自動で設定して欲しい場合は relationships => 1 にする
- ログを出して欲しい場合は、 debug => 1 を設定する。寡黙的にやる場合はいらない。
- 最後に配列で、DSN、ユーザ名、パスワードなどの接続情報を入れる。
- だだだだだっとクラスが生成される。
- ウマー
DBIx::Class::Schema::Loader のドキュメントにも出ています。
http://search.cpan.org/~blblack/DBIx-Class-Schema-Loader-0.03007/lib/DBIx/Class/Schema/Loader.pm