pgAdminIII で PostgreSQL の関数やトリガをデバッグできるようなの
で調べました。
以下はその備忘録です。
OSはCentOS4.6、PostgreSQLは8.3です。
pgfoundry から edb-debugger をダウンロードします。
最新の0.92をダウンロードしました。
PostgreSQLのインストール時に作ったディレクトリがそのまま残っていたので、それを使います。
(/usr/local/src/postgresql-8.3.3 )
ダウンロードしてきた edb-debugger は /usr/local/src/ に置いています。
$ cd /usr/local/src/postgresql-8.3.3/contrib/ $ tar zxvf /usr/local/src/edb-debugger-0.92.tgz $ cd ./pldebugger $ make $ make install
※edb-debugger0.91 は展開すると アーカイブのトップは /contrib となっていて 0.92 とは構造が違うようです。
$ make install Makefile:63: 警告: ターゲット `install' へのコマンドを置き換えます ../../src/makefiles/pgxs.mk:115: 警告: ターゲット `install' への古いコマンドは無視されます Makefile:77: 警告: ターゲット `installdirs' へのコマンドを置き換えます ../../src/makefiles/pgxs.mk:153: 警告: ターゲット `installdirs' への古いコマンドは無視されます mkdir -p -- /usr/local/pgsql/lib/plugins mkdir -p -- /usr/local/pgsql/share/contrib /bin/sh ../../config/install-sh -c -m 755 pldbgapi.so '/usr/local/pgsql/lib' /bin/sh ../../config/install-sh -c -m 755 targetinfo.so '/usr/local/pgsql/lib' /bin/sh ../../config/install-sh -c -m 755 plugin_debugger.so '/usr/local/pgsql/lib/plugins' /bin/sh ../../config/install-sh -c -m 644 ./pldbgapi.sql '/usr/local/pgsql/share/contrib'
postgresql.conf に shared_preload_libraries を追加します。
$ vi /usr/local/pgsql/data/postgresql.conf shared_preload_libraries = '/usr/local/pgsql/lib/plugins/plugin_debugger.so'
データベースに edb-debugger の SQLを流します。
既にデータベースが存在する時は、そのデータベースでもSQLを実行する必要があるかも
$ su - postgres $ psql -d template1 -f /usr/local/pgsql/share/contrib/pldbgapi.sql CREATE TYPE CREATE TYPE CREATE TYPE CREATE TYPE CREATE TYPE CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION CREATE FUNCTION
PostgreSQLを再起動。
pgAdminIII の メニュー -> ツール に デバッグが追加されています。
タグ: CentOS, Linux, PosrgreSQL