尝试使用PostgreSQL的PL/pgSQL调试器pldebugger
尝试使用PostgreSQL的PL/pgSQL调试器pldebugger。
使用 pldebugger 工具可以在 pgAdmin III 上调试 PL/pgSQL 存储过程。
安装
以下是适用于CentOS6+SCL+PostgreSQL 9.2的ansible playbook。
大致的步骤如下(假设使用root进行操作)。
1. 安装PostgreSQL的头文件
yum install postgresql92-postgresql-devel
我会从git上进行克隆。
git clone git://git.postgresql.org/git/pldebugger.git
3. 修改Makefile文件
cd pldebugger
sed -i.bak -e "s/\$(top_builddir)\/src\/pl\/plpgsql\/src/\/opt\/rh\/postgresql92\/root\/usr\/include\/pgsql\/server/g" /root/pldebugger/Makefile
※ postgresql-develまたはPostgreSQLのヘッダファイル類が以下にあることを仮定しています
/opt/rh/postgresql92/root/usr/include/pgsql/server
4. 进行编译和安装。
env USE_PGXS=1 make
env USE_PGXS=1 make install
5. 我们将修改postgresql.conf文件。
sed -i.bak -e "s/#shared_preload_libraries = ''/shared_preload_libraries = '\/opt\/rh\/postgresql92\/root\/usr\/lib64\/pgsql\/plugin_debugger.so'/" /opt/rh/postgresql92/root/var/lib/pgsql/data/postgresql.conf
6. 重新启动PostgreSQL。
service postgresql92-postgresql restart
在pgAdmin III上的初始设置
-
- 请连接到数据库。
-
- 选择「扩展」→「新建扩展…」。
-
- 在「名称」中选择「pldbgapi」,并点击「确定」。
- 请先关闭pgAdmin III,然后重新启动。
在pgAdmin III中使用调试器
-
- 连接到数据库。
-
- 从“函数”中选择要调试的函数,然后右击菜单中选择“调试”→“设置断点”。
调试器窗口将打开,并且在存储过程的开头设置了断点。
通过SQL查询来执行存储过程。
调试器窗口将进入断点状态。
请注意
-
- デバッガはやや不安定でpgAdmin IIIごと強制終了することがあります
- そのため、SQLクエリーで実行するSQL文はきちんとテキストファイルで保存しておくことをおすすめします