PGAdmin 4连接PostgreSQL 10显示表数据报rel表缺失错误的解决办法
解决PGAdmin4连接PostgreSQL10的"missing FROM-clause entry for table 'rel'"错误
问题根源
你遇到的错误是因为当前使用的PGAdmin4版本过高,PostgreSQL 10属于老旧版本,新版本PGAdmin4(v7.x及以上)已停止对它的兼容支持,导致PGAdmin4查询PostgreSQL系统表时使用的SQL语法与PostgreSQL10不匹配,进而触发该错误。
解决方案
指定兼容PostgreSQL10的PGAdmin4版本(推荐v6.21,这是最后一批支持PostgreSQL10的版本之一),修改Docker Compose配置:
方式1:直接使用指定版本的官方镜像
将pgadmin服务的build配置替换为指定版本的image:
pgadmin: image: dpage/pgadmin4:6.21 depends_on: - postgresql container_name: ${PROJECT_NAME}-pgadmin4 restart: on-failure ports: - "${PGADMIN_PORT}:80" environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD} volumes: - ./.docker/pgadmin/pgadmin-data:/var/lib/pgadmin
方式2:自定义构建镜像(若需保留自定义配置)
修改.docker/pgadmin/Dockerfile,将基础镜像指定为兼容版本:
FROM dpage/pgadmin4:6.21 # 原有的自定义构建指令(如有)
后续操作
- 清理旧的PGAdmin数据卷(避免缓存的不兼容配置残留):
docker-compose down -v
- 重新启动服务:
docker-compose up -d
内容的提问来源于stack exchange,提问作者Khaled Boussoffara
相关产品推荐
相关产品推荐

