You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arch系统PostgreSQL 15升级至16时pg_upgrade因PostGIS报错失败

PostgreSQL 15升级到16时pg_upgrade失败的问题分析

这不是pg_upgrade的代码bug,属于系统环境配置问题。

错误原因

从日志输出可以明确,pg_dump执行时找不到$libdir/postgis-3文件,核心问题是PostGIS扩展与新的PostgreSQL 16集群不兼容:

  • 未为PostgreSQL 16安装对应的PostGIS扩展包
  • 旧集群中安装的PostGIS扩展文件,在新集群的库目录下不存在,导致pg_dump无法读取相关依赖

解决方法

  1. 安装适配的PostGIS包:在Arch系统上,确保安装与PostgreSQL 16兼容的postgis包(Arch官方仓库的postgis包会自动匹配当前默认PostgreSQL版本,若你是手动部署的PostgreSQL 16,需确认包版本兼容性)。
  2. 升级前卸载旧集群的PostGIS扩展:登录PostgreSQL 15的旧集群,对所有涉及的数据库执行卸载操作:
    DROP EXTENSION IF EXISTS postgis_topology;
    DROP EXTENSION IF EXISTS postgis;
    
  3. 重新执行升级命令:完成上述操作后,再次运行你之前的pg_upgrade命令:
    pg_upgrade -b /opt/pgsql-15/bin -B /usr/bin -d /var/lib/postgres/olddata -D /var/lib/postgres/data
    
  4. 升级后重建PostGIS扩展:登录PostgreSQL 16的新集群,为需要的数据库重新创建PostGIS扩展:
    CREATE EXTENSION postgis;
    CREATE EXTENSION postgis_topology;
    

内容的提问来源于stack exchange,提问作者Guillermo.D

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 15:43:17