PostgreSQL 教程: 使用 DBeaver 调试 PL/pgSQL 存储过程

十月 6, 2023

摘要:DBeaver 的调试器可用于调试 PostgreSQL 中的 PL/pgSQL 存储过程。调试器可作为 PostgreSQL 安装的扩展。您必须具有超级用户权限才能使用调试器。

调试前的准备

要在 PostgreSQL 服务器上进行 PL/pgSQL 过程的交互式调试,您需要使用 debugger 插件。debugger 插件是作为扩展提供的典型的交互式调试器。它需要在 PostgreSQL 中修改配置文件中的shared_preload_libraries参数,以预加载一个共享库。调试器插件由 EDB 开发和维护。其源代码可供查看和改进。

调试器提供了调试 PL/pgSQL 过程所需的服务器 API:

  • 断点管理;
  • 逐步追踪;
  • 变量获取和管理。

安装

基于 Ubuntu 发行版的 PostgreSQL pldebugger

如果您碰巧通过 apt 安装了 PostgreSQL 12 ,那么该过程非常简单:

sudo apt install postgresql-12-pldebugger
sudo service postgresql restart

之后,在您想要调试存储过程的数据库中运行以下命令:

CREATE EXTENSION pldbgapi;

从源代码安装 PostgreSQL pldebugger

您可以在该代码仓库中找到源代码。安装说明位于 README 文件中。

安装 DBeaver 调试器扩展

调试器扩展支持调试 PostgreSQL 中的 PL/pgSQL 存储过程。

P2 仓库 URL:https://dbeaver.io/update/debug/latest/

您可以按照以下步骤安装扩展:

  1. 主菜单 Help-> Install New Software
  2. 将扩展的 P2 仓库 URL 粘贴到Work with字段中,然后按 Enter 键。
  3. 检查您要安装的项目。
  4. 单击 下一步 -> 完成。重新启动 DBeaver。

重要:如果 DBeaver 安装在写保护的文件夹中(如Program Files/Applications/usr/),则安装将无法进行。要继续,您需要从某个非写保护的文件夹运行 DBeaver,或者以管理员或 root 身份运行它。

在 DBeaver 窗口中运行调试器

打开要调试的函数的源代码。要切换断点,请将插入符号放在您希望函数停止的行上,并使用快捷键Shift + Control + B。或者,您可以通过单击行号旁边的灰色边距,来用鼠标切换断点,如下面的屏幕截图所示:

img

注意:您必须仅在 Show header 选项打开时切换断点。

然后您需要设置调试配置。找到错误图标右侧的向下箭头,单击它,然后选择

Debug As -> Database Debug

img

将打开 Edit Configuration 对话框。在 Function parameters 表中设置输入值。

img

单击 确定 按钮,您就可以开始了!

调试所必需的常用按钮(例如 跳过继续)位于此处:

img