升级PostgreSQL后pgAdmin无法显示PostgreSQL9表列表,报错求助
pgAdmin无法显示PostgreSQL 9服务器表列表,降级至v12后出现字段不存在错误
问题背景
今日上午将本地PostgreSQL测试服务器从v14升级至PostgreSQL 15,打开pgAdmin时收到警告,提示因已添加PostgreSQL 9版本服务器,部分功能可能无法正常工作。
已执行操作
- 完成PostgreSQL v14到v15的升级
- 发现pgAdmin出现警告且无法查看表列表
- 卸载v15并重装v14,问题仍未解决
- 卸载v14并安装PostgreSQL v12(卸载时已彻底清理:删除
ProgramFiles及AppData/Roaming目录下的PostgreSQL文件夹)
当前状态
- pgAdmin仍无法显示PostgreSQL 9服务器的表列表,无法升级该服务器但需继续通过pgAdmin使用它,所有查询均可正常执行
- 添加PostgreSQL 9服务器时,pgAdmin会弹出警告
- pgAdmin可正常列出所有模式、视图和序列,但点击“Tables”选项时会持续加载,始终无法展示表列表
- 操作系统:Windows 10 64位
新增错误(降级至v12后)
执行操作时出现如下错误:
ERROR: column "wait_event_type" does not exist LINE 10: wait_event_type || ': ' || wait_event AS wait_event, ^
解决方案
1. 安装与PostgreSQL 9兼容的pgAdmin版本
PostgreSQL 9.x已停止官方支持,高版本pgAdmin对其兼容性不足。需安装pgAdmin 4 v6.x及以下版本(推荐v6.18,为最后一个明确支持PostgreSQL 9.5+的官方版本):
- 卸载当前pgAdmin,删除
AppData/Roaming目录下的pgAdmin文件夹 - 下载对应版本的安装包完成安装后,重新连接PostgreSQL 9服务器
2. 修复wait_event_type字段报错
该错误因pgAdmin执行的查询使用了PostgreSQL 9.x不存在的字段(wait_event_type从PostgreSQL 9.6开始引入),可通过以下方式解决:
- 修改pgAdmin的SQL查询模板:找到pgAdmin安装目录下的
share/pgadmin4/sql文件夹,定位包含wait_event_type的文件(如server_activity.sql),将对应行修改为适配旧版本的写法:-- 替换原代码行 CASE WHEN pg_version_num() >= 90600 THEN wait_event_type || ': ' || wait_event ELSE wait_event END AS wait_event, - 或直接禁用pgAdmin的服务器活动监控功能,避免触发该查询
3. 替代客户端方案
若pgAdmin兼容性问题无法彻底解决,可改用PostgreSQL自带的psql命令行工具,或DBeaver等对旧版本PostgreSQL支持更好的客户端进行管理。
内容的提问来源于stack exchange,提问作者Maya
相关产品推荐
相关产品推荐

