* スキーマクラス・テーブルクラスの作成 [#o5a56f88]
ワンラインスクリプトで、DBIx::Class::Schema::Loaderを使って、実際のDBをパースし自動的にスキーマクラス・テーブルクラスを作る。
以下の場合、MySQLのmydbデータベースに接続して、libディレクトリ以下にMyDB::Schemaという名前空間でスキーマクラス・テーブルクラスを作成する。
perl -MDBIx::Class::Schema::Loader=make_schema_at,dump_to_dir:./lib \
-e 'make_schema_at "MyDB::Schema", {relationships => 1, debug => 1}, ["dbi:mysql:mydb","db_user","db_passwd"]'
*** ファイル構成 [#gebedbea]
- lib
`-- MyDB
|-- Schema
| |-- TableA.pm # テーブルAのDBIx::Classクラス
| `-- TableB.pm # テーブルBのDBIx::Classクラス
`-- Schema.pm # DBIx::Class::Schemaクラス
** テーブルごとのDBIx::Classクラスは作らず、Schema::Loaderクラスだけで対応する場合 [#m64b2c7d]
以下のようなスキーマクラスを作る。(が、上の方法でテーブルクラスを作成した方がよいだろう。)
package MyDB;
use base qw/DBIx::Class::Schema::Loader/;
__PACKAGE__->loader_options();
1;
** 参考 [#ef5957c4]
http://search.cpan.org/perldoc?DBIx::Class::Schema::Loader