使用pgAdmindebuggingPostgreSQL函数
我指的是在PostgreSQL服务器中启用debugging器,以便通过使用pgadmin逐步debugging代码来debuggingplpgsql函数。
我已经在postgresql.conf
设置了shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'
,运行pldbgapi.sql
,然后重新启动服务器。
这些步骤应该已经成功运行了, plugin_debugger.dll
应该可以通过使用命令show shared_preload_libraries
进行validation,并且可以通过右键单击pgAdmin中的函数来看到上下文菜单中的debugging选项。
当select“debugging” – >“debugging”时,会popup一个窗口,让我inputinput参数的值。 但在此之后,当我按OK
,它根本不响应。
任何想法或我错过了在服务器上的debugging器设置?
我使用PostgreSQL 8.3和pgAdmin 1.14
你必须在两个地方启用debugging。 在PGAdmin和数据库本身。 你所引用的那篇文章对解释这篇文章做了很好的工作,但是有一些细微之处。
pgAdmin的
当更新postgresql.conf
文件来加载debugging库时,我在Windows上运行PGAdmin,所以文件在这里:
C:\Program Files\PostgreSQL\9.4\data\postgresql.conf
而plugin_debugger.dll
的path实际上是
$libdir/plugin_debugger.dll
不
$libdir/plugins/plugin_debugger.dll
如文章所述。 所以你的postgresql.conf
需要这样的一行
shared_preload_libraries = '$libdir/plugin_debugger.dll'
如果您有疑问,请search实际的.dll文件。 如果你在Linux上,你要找的文件是plugin_debugger.so
。 不要忘记,更改postgresql.conf
文件将需要重新启动才能使更改生效。
PostgreSQL数据库
假设您正在Linux服务器上运行PostgreSQL数据库, 这个要点在解释如何下载依赖关系以启用debugging方面做得非常出色。 确保在安装时以root身份运行。
容易丢失的部分是针对要debugging的实际数据库发出命令。 对于PostgreSQL上的新版本,你只需要这样做:
CREATE EXTENSION IF NOT EXISTS pldbgapi;
如果这不会返回一个错误,你应该很好去。
一些额外的注意事项:
- 如上所述,只能以超级用户帐户运行时进行debugging
- 从他们的文档中,您只能debuggingpl / pgsql函数。 所以如果你的函数说的是类似
LANGUAGE c
当你select函数的时候,PGAdmin甚至不会显示一个右击debugging菜单选项。 查找具有LANGUAGE plpgsql
东西,并显示“debugging”菜单。
肯,
您是否尝试过使用pgAdmin 1.8来排除PgAdmin 1.14 / PostgreSQL 8.3交互的问题。 我已经使用了8.3,而且我写的这篇文章已经有一段时间了 – 你所说的是,我正在用1.14 / PostgreSQL 9.1进行testing,所以这可能是与旧版本交互的一个问题。 不幸的是我没有一个8.3testing。
我依稀记得曾经有过这个问题,但是当我在postgresql.conf中除了pldebugger之外还有一个共享库的时候。 不记得是哪一个,但删除其他共享库解决了我的问题。
希望这些build议有一些帮助,里贾纳
我有同样的问题。 确保您在postgres.conf中加载的唯一共享库是debugging器。 没有其他的。 甚至没有探查器。 如果在尝试debugging某个function时遇到SSL错误,请重新连接到服务器。