« アシモ・・・orz | メイン | 12月12日の行動 »
2006年12月11日
[技術] Catalyst と DBIx::Class
【覚え書】
Catalystで、O/RマッパーにDBIx::Classを利用する場合のヘルパースクリプトの実行方法
(データベースにテーブルを追加した時に追加のModelクラスを生成する場合も同じ)
script/myapp_create.pl model DBIC DBIC::Schema DBIC create=static dbi:Pg:dbname=xc 'pgusername' 'password' '{ AutoCommit => 1}'
1) 第2引数に指定した名称で、Catalyst::Model::DBIC::Schemaを継承したクラスが、lib/MyApp/Modelの下に作成される。このクラス内にDBへのconnect_info等の設定が書き出される。
2) 第4引数で指定した名称で、DBIx::Class::Schemaを継承したクラスが作成され、かつ、同名のディレクトリ(この場合 lib/DBIC)の下に各テーブルに対応するクラスファイルが作成される。(クラスファイルが作成されるのは、create=staticの場合)
script/myapp_create.pl model CatDBIC DBIC::Schema MyApp::Model::DBIC create=static dbi:Pg:dbname=xc 'pgusername' 'password' '{ AutoCommit => 1}'
上記のように第4引数を MyApp::Model::DBICとすると、全てクラスファイルがlib/MyApp/Modelに作成されるが、その場合には、第2引数に指定するクラス名と第4引数のクラス名を同じにしてはならない。(クラスファイル名が衝突してしまう)
また、第5引数のcreate=staticの代わりにcreate=dynamicもある。
追記(Catalyst MLから)
script/myapp_create.pl model CatalystModelName DBIC::Schema MySchemaClass [ create=dynamic | create=static ] [ connect_info arguments ]
投稿者 nekobara : 2006年12月11日 22:25