検索 ページ処理された結果セット When you expect a large number of results, you can ask DBIx::Class for a paged resultset, which will fetch only a small number of records at a time: 結果セットが膨大になりそうなら、ページ処理された結果をDBIx::C... 続きを読む
■ [model]DBIx::Class::ResultSetでのpaging my $schema = Hoge::Schema->connect(~); my $rs = $schema->resultset('hoge')->search({}, { page => 1, rows => 10}); print " First page: ", $rs->pager->first_page, "\n"; print " Last page: ", $rs->pager... 続きを読む
DBIx::Class::UTF8Columns - Force UTF8 (Unicode) flag on columns - search.cpan.org DBIx使って、utf8の値を持ちうるフィールドがある場合、これを使うと自動的にあれこれしてくれるみたいです。例えば、PlaggerからStore::DBICで書き出したDBのEntryテーブ... 続きを読む
いきおいついでにもういっちょ。DBIC::Schema::Loader 任せってわけにいかないのは言うまでもないので、なんとかしてやらなきゃなりませんね。んで、最初から「convention over configuration」な設計ができてれば MoFedge::Data::DBIC::Schema のように半自動... 続きを読む
以前のエントリでも紹介しましたが、DBICでSQLの関数を使うときはスカラーリファレンスが活用できます。そのエントリでは、INSERTやUPDATEのときにスカラーリファレンスを使う例を示しましたが、SELECTのときにも同じことがいえます。 前回のSELECT時に複雑な関... 続きを読む
NAME DBIx::Class::Relationship - Inter-table relationships SYNOPSIS MyDB::Schema::Actor->has_many('actorroles' => 'MyDB::Schema::ActorRole', 'actor'); MyDB::Schema::Role->has_many('actorroles' => 'MyDB::Schema::ActorRole', 'role'); MyDB::Sche... 続きを読む
Catalyst::Model::DBIC::Schema を使う。 この Model は大きく3つの使いかたがある。 単純に既に存在する Schema クラスを使用する Schema::Loader で既存の DB から Schema クラスを生成し、それを使用する Schema::Loader で既存の DB から Schema::Loader ク... 続きを読む
■[Perl]DBIx::Class::SchemaAccesser DBIx::Class::SchemaAccesserなるものを作りました。 ラボで公開ちう。 http://code.mfac.jp/trac/browser/CPAN/nekokak/DBIx-Class-SchemaAccesser/ Catalystとかのフレームワークを使っている場合は DBICのオブジェクト... 続きを読む
■[Perl]DBICのRの拡張の必要性 http://d.hatena.ne.jp/hi-rocks/20061228/1167291723 結局、ResultSetクラスにメソッド生やしちゃうと、全部のSchema(テーブル)でそのメソッドが共有されちゃう その通りです。 こちらについては、findのように共通メソッドと... 続きを読む
僕も最近ようやくDBICを触り始めました。まだ手探りな感じですが、とりあえずid:nekokakさんのとこはかなり参考にさせてもらいながら、いろいろ試し中です。(まだ新しいWeb+DBは見てませんすいません) そんで、表題の件なんですが。http://d.hatena.ne.jp/nek... 続きを読む
InflateColumnを使っているときに問題があったため、修正版を新しいエントリに起こしました。修正版:DBIx::Class + Catalyst::View::JSON(2) - holidays-l開発ブログ昔書いたメモが出てきたので転載。DBIC::ResultSet#findやDBIC::ResultSet#searchしたも... 続きを読む
NAME DBIx::Class::ResultSet - Responsible for fetching and creating resultset. SYNOPSIS my $rs = $schema->resultset('User')->search(registered => 1); my @rows = $schema->resultset('CD')->search(year => 2005); DESCRIPTION The resultset is also... 続きを読む
■[Perl]DBICでの簡単キャッシング DBICで簡単にお金が借りることができます(ちが まあ、面白くないのでやめておきますが、DBICは かなりパフォーマンスに気を使った設計なのは周知の事実なのでつが、 キャッシュを使うことでよりパフォーマンス向上が図れます... 続きを読む
Perl, CPAN, DBIC, メモd:id:jojo_a_gogogo:20061220:1166612945 (元ネタ)d:id:nekokak:20061222:1166748742 (添削版w)と言う訳でid:nekokakさんの方が確かにシンプルですな。 SELECT me.id, me.name FROM member me ORDER BY RAND() LIMIT 3; ってPostgreSQLで... 続きを読む
この前の仕事からTipsをダンプ... Catalyst x Lighttod の時、Catalyst は 5.7004 以上必須 Shibuya.pm の typester さんの話で感化されたのもあって採用した Lighty、イイ。シンプルに言われたことだけをこなしてくれる感じ。 で、Catalyst を Lighty で動かす... 続きを読む
DBIx::Class vs mysql vs UTF-8 それ、0.7以降(多分)ならconnectionやconnect上書きしなくてもこうかけるよ。 __PACKAGE__->connection( 'dbi:mysql:foo', 'root', { on_connect_do => ['SET NAMES utf8'], }, ); 続きを読む
■[Perl]DBICでネストしたループ そういえばとあるところで質問を受けたので。 その質問を補う形で。 DBICを使った場合でも普通にネストしたループは使えるわけですが、 TTの場合。 [% WHILE (blogger = blogger_ite.next) %] [% FOR entry IN blogger.entries ... 続きを読む
■[Perl]add_unique_constraintで行かない naoyaさんから突っ込まれましたが、まさにそのとおしでした><; http://naoya.g.hatena.ne.jp/naoya/20061117/1163769268 ふつうにadd_unique_constraintしていなくても my $user = $self->model('User')->find( { r... 続きを読む
格言「困ったら、Scalarりふぁれる」。です。はい。本日もDBICネタですが、DBICのRで困ったらスカラーリファレンスです。はい。 $self->model('User')->search( { 'me.created_on' => \'IS NULL', } )->first; created_onはDATETIME型とします。こんな感じで実... 続きを読む