你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于 Visual Studio Code 的 PostgreSQL 扩展可让你打开psql会话,这些会话会自动连接到你的数据库,并可通过psql运行.sql文件。 无需离开编辑器,即可完整使用原生 psql 功能,包括反斜杠命令、COPY 工作流和交互式脚本。
该扩展会自动将连接信息(主机、端口、数据库、用户和密码)传递给 psql,因此您可以在打开会话后立即开始工作。
先决条件
- 已安装用于Visual Studio Code的 PostgreSQL 扩展。
- 与 PostgreSQL 服务器的活动连接。 有关设置步骤,请参阅 快速入门:连接和查询 PostgreSQL。
- 安装在系统上的
psql命令行客户端。 - 在 Visual Studio Code 中打开工作区文件夹。
Note
如果扩展找不到psql,则会显示错误通知,其中包含 PostgreSQL 下载页的“了解详细信息”链接。 还可以使用设置将扩展指向自定义安装位置 pgsql.pgBinaryDirs 。 请参阅 配置 psql 二进制路径。
在 psql 和查询编辑器之间进行选择
大多数 PostgreSQL 工作流在不同时间都使用这两种工具:
| 工具 | 最适用于 |
|---|---|
| 查询编辑器和 IntelliSense | IntelliSense、图形化结果、图表、查询历史记录和导出结果。 |
psql 终端 |
反斜杠命令、本地脚本执行、\copy 工作流以及终端故障排查。 |
打开连接的终端
psql打开自动连接到特定数据库的会话。 该扩展使用-h、-p、-d和-U标志启动psql,并设置PGPASSWORD环境变量,因此您无需手动输入连接详细信息。
- 在 “连接 ”树中,右键单击数据库节点。
- 选择 “使用 PSQL 进行连接”。
此时会打开一个Visual Studio Code任务终端,并psql连接到所选数据库。 终端选项卡名为 PSQL: <配置文件名称>。
你也可以从 命令面板(Ctrl+Shift+P / Cmd+Shift+P)中运行此命令:搜索 PGSQL:使用 PSQL 连接。
Note
对于使用Microsoft Entra ID身份验证的Azure Database for PostgreSQL连接,扩展会在启动psql之前验证身份验证令牌,并将令牌作为密码传递。 会话保持连接状态,无需手动重新身份验证。
运行 SQL 文件
使用当前活动编辑器中的连接通过psql执行.sql文件。 输出显示在Visual Studio Code任务终端中。
- 在编辑器中打开文件
.sql。 - 如果尚未连接编辑器,请将编辑器连接到数据库。
- 在编辑器中右键单击并选择 “使用 PSQL 运行文件”。
该扩展保存文件,然后针对活动连接运行 psql -f <filepath> 。 此时会打开一个任务终端以显示执行输出。 工作目录设置为包含文件的文件夹,因此脚本中的相对路径可以正确解析。
Important
在执行之前保存文件。 如果无法保存未保存的更改,该扩展会显示一条消息,指出在执行 PSQL 命令之前必须保存该文件。 操作已取消。
配置 psql 二进制路径
扩展按以下顺序在三个位置搜索 psql :
- 捆绑的二进制文件:随扩展提供的 PostgreSQL 客户端工具,按版本分类。
-
系统路径:操作系统
PATH环境变量中列出的目录。 -
自定义目录:添加到
pgsql.pgBinaryDirs设置的路径。
找到多个版本的扩展 psql 时,该扩展选择最符合服务器的 PostgreSQL 版本的版本。 如果不存在完全匹配,则使用最接近的可用版本。
添加自定义二进制目录:
- 打开 “设置” (
Ctrl+,/Cmd+,)。 - 搜索
pgsql.pgBinaryDirs。 - 选择 “添加项 ”并输入包含二进制文件的目录的
psql绝对路径。 - 重启Visual Studio Code,使更改生效。
Tip
在具有 Homebrew 的 macOS 上,典型的路径是 /opt/homebrew/opt/postgresql@17/bin。 在Windows上,它通常是C:\Program Files\PostgreSQL\17\bin。
扩展如何启动 psql
选择 “使用 PSQL 连接 ”或 “使用 PSQL 运行文件”时,扩展将 psql 调用组合如下:
| 连接详细信息 | 扩展如何传递它 |
|---|---|
主机(-h) |
来自连接配置文件中的服务器地址。 |
端口 (-p) |
来自连接配置文件中的端口。 默认值为 5432。 |
数据库(-d) |
所选数据库节点或连接配置文件的默认数据库 |
用户 (-U) |
连接配置文件的用户名;对于 Microsoft Entra ID,则为 Entra 用户名或电子邮件地址 |
| 密码 | 通过 PGPASSWORD 环境变量设置;对于 Microsoft Entra ID,刷新后的访问令牌 |
| 客户端编码 | 通过 PGCLIENTENCODING 环境变量设置(默认值为 UTF8) |
该扩展将 psql 作为 Visual Studio Code 任务运行,并在 终端 面板中打开。 在 psql 退出后,任务终端仍会保持打开状态,以便你查看输出。
用例
当需要内置查询编辑器以外的功能时,终端 psql 非常有用:
-
交互式 SQL 会话:在熟悉
psql的环境中运行即席命令并检查结果。 -
批量数据导入/导出:使用
\copy或COPY命令加载高性能数据。 -
管理任务:具有完全
psql访问权限,可管理角色、权限和服务器配置。 -
脚本测试:在部署之前,先在原生
psql中验证.sql脚本。 -
反斜杠命令:使用
\dt、\d+、\timing、\x以及图形查询编辑器中不可用的其他命令。
常见 psql 任务
检查数据库对象
使用 psql 反斜杠命令快速检查架构:
\dt
\d+ public.orders
\dn
这些命令列出表、显示详细的对象定义和列表架构。
启用计时和扩展输出
\timing on
\x on
SELECT * FROM public.orders LIMIT 5;
\timing 显示每个语句后的查询持续时间。 扩展的输出 (\x) 使宽行更易于读取。
使用 \copy 加载或导出数据
\copy public.customers FROM '/Users/example/customers.csv' WITH (FORMAT csv, HEADER true)
使用 \copy 进行面向终端的批量导入或导出,同时复用由扩展管理的连接上下文。
Troubleshoot
psql 找不到
如果扩展显示错误“找不到 psql 可执行文件”,请尝试以下步骤:
- 从 PostgreSQL 下载页安装适用于操作系统的 PostgreSQL 客户端工具。
- 通过在系统终端中运行
psql --version来验证psql是否可用。 - 如果
psql安装在非标准位置,请将目录添加到pgsql.pgBinaryDirs该设置。 请参阅 配置 psql 二进制路径。 - 重启Visual Studio Code。
打开工作区文件夹
该扩展需要先打开一个工作区文件夹,才能启动 psql。 如果邮件显示工作区文件夹必须打开,请打开包含 “文件>打开文件夹”的文件夹,然后重试。
身份验证或连接失败
如果 psql 打开,但连接失败:
- 确认连接配置文件中的主机、端口和数据库是否正确。 请参阅 连接和身份。
- 对于Microsoft Entra ID身份验证,请验证帐户是否仍在登录。 扩展会自动刷新令牌,但过期的会话可能需要重新身份验证。
- 如果使用 SSL 或 SSH 隧道,请先从连接对话框重新测试相同的连接,然后再重新打开
psql。
文件更改未运行
当你使用 Run file with PSQL 运行文件时,该扩展会在执行前先将文件保存到磁盘。 如果保存失败,扩展将取消该操作。 在查看输出之前,请成功保存文件。