追記 名前変更してcodereposに上げてみました。 http://svn.coderepos.org/share/lang/perl/DBIx-Class-AsArrayHash/ 独自にキャッシュしたいときや、viewがオブジェクトをサポートしてない時とかに必要にかられる。 コンポネント DBIx::Class::ResultSetX package DBIx::Class::ResultSetX; use strict; use warnings; use base qw( DBIx::Class ); __PACKAGE__->load_components(qw/ResultSetManager/); sub searchX : ResultSet { my $self = shift; my $cond = shift || {}; my $args = shift || {
以前 Catalyst::Model::DBIC::Plainでのトランザクション管理 というエントリーを書きました。 Catalyst::Model::DBIC::Plainってあたりが時代を感じさせます。 Cookbokにもありますが現在のDBIx::Classでトランザクションを管理する場合には$schema->txn_do($coderef)を使うとトランザクションの開始からコミット、ロールバックまでやってくれます。 my $schema = CD::Schema->connect(...); $txn = sub { my $artist = $schema->resultset('Artists')->create( { name => $name, } ); my $album = $schema->resultset('Albums')->create( { title
DBIx::Class::Manual::DocMap をみてどんなドキュメントがあるのか知る。 DBIx::Class::Manual::Intro を読んで作法を知る。 DBIx::Class::Manual::Example を読んで雰囲気をつかむ。実際やってみる。 DBIx::Class::Manual::Troubleshooting にも書いてあるけど,実際にどんな SQL が発行されるのかは,デバッグモードにすればわかる。 $schema = MySchema->connect(...); したあとに,$schema->storage->debug(1); おもに 3 種類のレイヤがある。 テーブルスキーマを定義する DBIx::Class の継承クラス DBIx::Class::ResultSource のメソッドを使うとテーブル定義とかいろいろ調べられる。 ResultS
Catalyst::Model::DBIC::Schema を使う。 この Model は大きく3つの使いかたがある。 単純に既に存在する Schema クラスを使用するSchema::Loader で既存の DB から Schema クラスを生成し、それを使用するSchema::Loader で既存の DB から Schema::Loader クラスを生成し、それを利用する。 1 はまず Schema クラスをどこかに作ってあり(My::Schemaと仮定する)、それをそのまま Catalyst::Model として利用する。 ./script/myapp_create.pl model DBIC DBIC::Schema My::Schema で、MyApp::Model::DBIC が作成される。この My::Schema に connection なんかが定義されていてそれを使う場
Catalyst::Model::DBIC::Schemaを使ってみました。 DBIx::Classで新しくなったSchemaモデルをCatalystのModelとして使うクラスなのですが、今までのModelと大きく違うのはモデルをアプリケーションの外に追い出すことが出来る点です。 例えば、複数のアプリケーションで認証情報を使いまわしたい時には便利かと思われます。 まずはスキーマを作ります。(Perl/DBIC - Nekokak's core dumpに大変わかりやすい説明があります。) Schema/ Account.pm Account/ Users.pm Schema/Account.pm package Schema::Account; use strict; use warnings; use base 'DBIx::Class::Schema'; __PACKAGE__-
VERSION-0.05000での記述。http://search.cpan.org/~mstrout/DBIx-Class/ ドキュメントも当初に比べれば増えてきたし、そっち見たほうがよかばい。 まあ以下は簡単なまとめで。一通り使えるくらいは書きたい。 このサイトはWikiなので途中途中に色々追加したり修正したりしますからご注意を DBIx::Class::Schemaを使ってみる これからDBICではSchemaメインらしい。 使うテーブル作成SQL create table user ( id int(10) NOT NULL auto_increment, name varchar(256) NOT NULL, PRIMARY KEY (id) ) ENGINE = InnoDB;
ここ数ヶ月 Catalyst を触っていなかったらメキメキと記憶から知識が抜けてました・・・orz 恐ろしいことに DBIC もメキメキと忘れてました・・・orz 僕はどちらかというと OR Mapper を使うよりも SQL 直書きしたほうが理解が早い部類の人間なので DBIC つかって distinct とかするコードを書くのが面倒くさくて仕方がない。なので本業の Sledge ベースのアプリは Model 部分に自前の DBI ラッパー使ってコネクションとかも管理してます。 ※ココ時代と逆行してるんでしょうね・・・ とはいえ忘れたままは悔しいので、最近ちょっとしたアプリを作るために Catalyst を使って書いていろいろメモったのを備忘録として残して自分用に公開。ってか DBIC のことなら DBIx::Class::Manual::Cookbook - Miscellaneous
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く