日向夏特殊応援部隊

俺様向けメモ

DBIC

DBIC::Schema::Loaderのカスタマイズと言うネタでプレゼンするはずだった件

話してないけど、資料はあるので公開しまっする。 Customization of DBIC::Schema::Loader 概要 開発中にスキーマに変更が発生して、make_schema_at()を何度も叩く際に困ることと、Schema::Loaderで比較的意図した通りにSchema, Tableクラスを生成する為に、…

Catalyst/DBICでDigest認証する

自分の為のメモですよ。 準備 まずはCatalystプロジェクトを作ります $ mkdir -p /path/to/dir $ cd /path/to/dir $ catalyst.pl AuthSample ユーザー用のDBICスキーマを定義します。 $ module-starter --module AuthSample::Schema $ cd AuthSample-Schema…

DBIx::Class::Service Released

まだCPANに反映されて居ないと思いますが、DBIx::Class:Serviceと言うモジュールをリリースしました。 /lang/perl/DBIx-Class-Service/trunk (CodeRepos) DBIx-Class-Service-0.02 - Aggregate DBIC processes between multiple tables. - metacpan.org どん…

GraphViz::ISA::MultiでDBICのクラスツリーを作る

もうすぐ送別会なのでソースだけ。 画像もうpりました。 とてもじゃないけど印刷出来ないグラフが表示されます。>< ソース #!/usr/bin/perl use strict; use warnings; use Module::Find; use GraphViz::ISA::Multi; setmoduledirs("./lib"); my @modules …

DBIx::Class SourceCode Reading

Class::C3::Componentised Source Code Reading - Yet Another Hackadelic DBIx::Class::Componentised Source Code Reading - Yet Another Hackadelic Class::Accessor::Grouped - Yet Another Hackadelic を予備知識としてDBIx::Classを読み解きます。 も…

DBIx::Class::Componentised Source Code Reading

d:id:ZIGOROu:20080317:1205779889 の続きです。 DBIx::Class::Componentisedとは 恐らくDBIC関連のdistにおける基底クラスだと考えて良いと思います。 DBIx::Classはこのクラスを継承していて、DBIx::Class::Componentisedは前回説明した、Class::C3::Compo…

DBIx::Class::Schema::Loaderの手動スキーマ生成、初心者向けチュートリアル

と言う訳で自分なりに色々調べてみた。 テスト用データベース定義 CREATE TABLE `User` ( `user_id` bigint(20) NOT NULL auto_increment, `name` varchar(255) character set latin1 default NULL, `created_on` datetime default NULL, `updated_on` datet…

DBICx::DeployでSchema->Database

DBICx::Deployが便利す。 これは既にある既存のSchemaクラスからデータベースを構築(deploy)する物です。元々MySQLでテーブル作ってからDBIx::Class::Schema::LoaderとかでSchema生成してあったとして、 それをSQLiteで手元でちょっとテストとかそういうのに…

Class::C3::Componentised Source Code Reading

DBIC関連の基底クラスとも言えるモジュールがClass::C3::Componentisedです。C3ベースのコンポーネント化されたクラスモジュールを作る際のベースですね。 1.0003をテキストとします。 load_components() sub load_components { my $class = shift; my $base…

DBICのTransactionとAutoCommit

追記(2008-03-16T02:21:32+09:00) ごめんなさい、要約が超間違えてました>< 要約 transactionしたい場合はAutoCommit => 1としてtxn_doすると幸せになれます。 解説 しようかと思ったけど、同様の現象で既にきちんと解説してる人が居るのでそちらにリンク…

randomなレコードを指定数取得する

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でも動くのだろうか。…

DBIx::Class::ResultSetManagerが素敵な件

はじめに DBIx::Class::ResultSetManagerを使うとTableクラスの中のメソッドとして、ResultSetの拡張を記述する事が出来ます。*1ちなみにまだ実験段階のモジュールのようです。 あしからず。以下ドキュメントのSYNOPSYSをそのまま。 # in a table class __PA…