DBIC で static にスキーマを生成して利用する
前回は自動でロードするようにしたけれど、オーバヘッドうんぬんかんぬんなどなどの理由から、static にクラスを先に生成することにしました。
といっても
- unknownplace.org - Schema-Loader 使い方
- http://unknownplace.org/memo/2007/05/07#e001
のまんまで、Postgres のスキーマを利用するようにちょっと設定書いたりしただけです。
スキーマを作成する
#!/usr/bin/perl use utf8; use strict; use warnings; use FindBin; use File::Spec; use lib File::Spec->catfile( $FindBin::Bin, qw/.. schema / ); use DBIx::Class::Schema::Loader qw/ make_schema_at /; make_schema_at( 'MyApp::Schema', { components => ['ResultSetManager', 'UTF8Columns'], dump_directory => File::Spec->catfile( $FindBin::Bin, '..', 'lib' ), really_erase_my_files => 1, # 昔のオプション名から新しいオプション名に debug => 1, db_schema => 'my_schema', # ここかいた! }, ['dbi:Pg:dbname=mydb', 'user', 'passwd'], );
で、作成した script を実行するとスキーマがたくさん生成されます。