Apache::Session::Store::Postgres モジュール

by Hippo2000(2000/8/8)

日本語チョウ訳シリーズ Apache::Session::Store::Postgres モジュールなのです。



名前

Apache::Session::Store::Postgres - 永続データをPostgresデータベースに格納する


概要

 use Apache::Session::Store::Postgres;

 my $store = new Apache::Session::Store::Postgres;

 $store->insert($ref);
 $store->update($ref);
 $store->materialize($ref);
 $store->remove($ref);

説明

Apache::Session::Store::Postgres はApache::Sessionの格納インターフェースを完全に満たします。セッション・データはPostgresデータベースに格納されます。


スキーマ

このモジュールを使うためには、'sessions'というテーブルに少なくともこれらのカラムが必要です:

 id char(32)     # あるいはセッションIDの長さ分
 a_session text  # これは8KBに制限されます :(

このスキーマを作るために、psqlプログラムを使って以下のコマンドを実行することが出来ます:

 CREATE TABLE sessions (
    id char(32) not null primary key,
    a_session text
 );

もし他のコマンドを使うのであれば、テーブルのIDカラムにユニークなインデックスを作るのを忘れないで下さい。


コンフィグレーション

このモジュールはデータベースに接続するときに使われるデータソース、ユーザ名、パスワードを知る必要があります。これらの値はオプションのハッシュ(Apache::Sessionドキュメントをご覧下さい)を使って設定することが出来ます。そのオプションは以下の通りです:

DataSource
 
UserName
 
Password
 

例:

 tie %hash, 'Apache::Session::Postgres', $id, {
     DataSource => 'dbi:Pg:dbname=database',
     UserName   => 'database_user',
     Password   => 'K00l'
 };

代りに既にデータベースにオープンされているDBIハンドルを渡すことが出来ます:

 tie %hash, 'Apache::Session::Postgres', $id, {
     Handle => $dbh
 };

作者

(原文のまま)

This modules was written by Jeffrey William Baker <jwbaker@acm.org>

A fix for the commit policy was contributed by Michael Schout <mschout@gkg.net>


参考資料

Apache::Session, Apache::Session::Store::DBI


ホーム Perlの小技 Apache::Session

ご意見、ご質問はこちらの掲示板で受け付けています。
またメールは河馬屋(Nifty)にお願いします。