psycopg(PostgreSQL用DA[Data Adapter])

ZopeのPostgreSQL用データアダプタpsycopgのインストール

PostgreSQLの設定

PostgreSQLでmake installの後

$ cd (src)/postgresql-7.4.2
$ make install-all-headers
make -C src install-all-headers
make[1]: 入ります ディレクトリ `/usr/local/src/postgresql-7.4.2/src'
make -C include install-all-headers

(略)
for dir in access bootstrap catalog commands executor lib libpq mb nodes optimiz
er parser port regex rewrite storage tcop utils; do \
  for file in ./$dir/*.h; do \
    /bin/sh ../../config/install-sh -c -m 644 $file /usr/local/pgsql/include/ser
ver/$dir/`basename $file` || exit; \
  done \
done

make[2]: 出ます ディレクトリ `/usr/local/src/postgresql-7.4.2/src/include'
make[1]: 出ます ディレクトリ `/usr/local/src/postgresql-7.4.2/src'

mxDateTimeのインストール

mxDateTimeをここから egenix-mx-base-2.0.5.tar.gzをDownload。
$ tar zxvf egenix-mx-base-2.0.5.tar.gz
$ cd egenix-mx-base-2.0.5
$ su
# python  setup.py install

pyscopg のインストール

ここから psycopg-1.1.6.tar.gzをDownload。
$ tar zxvf psycopg-1.1.6.tar.gz
$ ./configure --with-python=/usr/bin/python2.1 \
--with-zope=/home/okada/Zope-2.6.4-src \
--with-postgres-includes=/usr/local/pgsql/include \
--with-postgres-libraries=/usr/local/pgsql/lib \
--with-mxdatetime-includes=/usr/lib/python2.1/site-packages/mx/DateTime/mxDateTime
$ make
$ su
# make install
# exit
$ make install-zope

その他の設定

/etc/ld.so.confに
/usr/local/pgsql/lib
を追加

# /sbin/ldconfig

zopeのstartスクリプトに

        export EVENT_LOG_FILE
fi
PGCLIENTENCODING=EUC_JP  <---追加
exec /usr/bin/python $cwd/z2.py -D "$@"

を追加。

確認

postgresqlとzopeを再起動

postgresのユーザにokadaをzopeのユーザにokadaを作成

http://10.99.99.125:8080/manage/
にアクセスし、
okadaでlogon

Root Folder --> Select type to add で「Z Psycopg Database Connection」
を選択 --> Enter a Database Connection String に「dbname=zopetest 
user=okada」を入れる。 --> それ以外はdefaultでAdd。
(pg_hba.confに
host    all         all         127.0.0.1         255.255.255.255   trust
が設定されているときはパスワードは不要)
userがはじめはzopeユーザと異なるときはDB接続出来なかったが
その後は異なっていてもuser=でしてたら接続できるようになった(?)

接続に成功すると
Root Folderに
Psycopg_database_connection (Z Psycopg Database Connection) 
が表示される。

Psycopg_database_connection (Z Psycopg Database Connection)を選択し、
「test」タブを選択する。

Z Psycopg Database Connection at  /Psycopg_database_connectionという
ページが表示され、SQLを入力できるページが表示される。

そこでSQLを入れて確認する。
Webページからの接続サンプル

[参考]

http://www005.upp.so-net.ne.jp/nakagami/Memo/psycopg.html