如何在 PostgreSQL PG-ADMIN 中使用 Debugger?

How to use Debugger in PostgreSQL PG-ADMIN?

我曾使用过 Oracle SQL 开发人员,调试器在 Grant Debugger 之后工作正常,但我现在正在使用 PostgreSQL PG-ADMIN 并且我正在尝试使用调试功能但是调试不起作用。

是否有任何补助金或任何其他程序?

我也参考:

Debug PostgreSQL function using pgAdmin

您必须在两个地方启用调试。在 PGAdmin 和数据库本身上。您引用的那篇文章很好地解释了它,但也有一些细微差别。

PGAdmin

更新您的 postgresql.conf 文件以加载调试库时,我 running PGAdmin on Windows 所以文件在这里:

C:\Program Files\PostgreSQL.4\data\postgresql.conf

plugin_debugger.dll 的路径实际上是

$libdir/plugin_debugger.dll

没有

$libdir/plugins/plugin_debugger.dll

如文章所述。所以你的 postgresql.conf 需要这样一行

shared_preload_libraries = '$libdir/plugin_debugger.dll'

如果您有疑问,请搜索实际的 .dll。如果您在 Linux 上,您要查找的文件是 plugin_debugger.so。不要忘记更改 postgresql.conf 文件需要重新启动才能使更改生效。

PostgreSQL 数据库

假设您 运行 您的 PostgreSQL 数据库位于 Linux 服务器上 this gist 在解释如何下载启用调试的依赖项方面做得很好。安装时确保你是 运行 root。

容易忽略的部分是针对您要调试的实际数据库发出命令。对于 PostgreSQL 上的较新版本,您需要做的就是:

CREATE EXTENSION IF NOT EXISTS pldbgapi;

如果这没有 return 错误,您应该可以开始了。

一些额外的注意事项:

  • 如前所述,只有当运行为超级用户帐号时才能调试
  • their docs 开始,您只能调试 pl/pgsql 函数。因此,如果您的函数显示 LANGUAGE c 之类的内容,当您 select 函数时,PGAdmin 甚至不会显示右键单击“调试”菜单选项。寻找具有 LANGUAGE plpgsql 的内容,调试菜单应该会显示。