SQL::Translator を使って,DBIC のスキーマクラスを自動作成

Catalyst::Model::DBIC::Schema を使いこなすのはややめんどくさい状況ですが,SQL::Translator というモジュールがあり,これに付属する sqlt というコマンドラインフロントエンドを使うと,スキーマを DB からロードして DBIC クラスを生成してくれます。

たとえば SQLite の DB ファイル testdb があったとして,

% sqlt -f DBI --dsn DBI:SQLite:testdb -t DBIx-Class-File > MyDBIC.pm

とすると,testdb に含まれるテーブルとスキーマが一つのパッケージとして生成されます(DBICDBIC::Schama 由来のクラスとして)。
デフォルトでクラス名は My::Schema という名前空間ですが,--prefix オプションで明示的に指定することもできます。

そのうち Catalyst::Helper::DBIC::Schema も,SQL::Translator を使うようになるのではないかなぁと予想。