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

PostgreSQL 9.6升级至10版本:pg_upgrade库检查报错求助

解决pg_upgrade升级PostgreSQL 9.6到10时PostGIS拓扑库缺失的问题

我来帮你搞定这个pg_upgrade的报错!这个问题的核心是目标PostgreSQL 10实例缺少旧版本(9.6)中使用的PostGIS拓扑扩展库,pg_upgrade要求新旧实例的可加载库必须一致才能通过一致性检查。下面是具体的解决步骤:

步骤1:在PostgreSQL 10实例中安装对应版本的PostGIS拓扑库

你需要确保PG10的环境里安装了和PG9.6完全同版本的PostGIS(这里是2.3版本),因为pg_upgrade对扩展版本的匹配要求很严格。

包管理器安装(推荐)

根据你的操作系统选择对应的命令:

  • Debian/Ubuntu:
    sudo apt update
    sudo apt install postgresql-10-postgis-2.3 postgis
    
  • CentOS/RHEL:
    sudo yum install postgis23_10
    

这些命令会自动把postgis_topology-2.3库文件部署到PG10的$libdir目录下。

源码编译安装(如果包管理器没有对应版本)

如果你需要手动编译,要确保编译时指定PG10的pg_config路径:

# 下载PostGIS 2.3源码包
wget https://download.osgeo.org/postgis/source/postgis-2.3.9.tar.gz
tar -xvf postgis-2.3.9.tar.gz
cd postgis-2.3.9
# 指定PG10的pg_config路径,比如/usr/lib/postgresql/10/bin/pg_config
./configure --with-pgconfig=/usr/lib/postgresql/10/bin/pgconfig
make && sudo make install

步骤2:验证库文件是否存在

登录服务器,找到PG10的lib目录(通常路径是/usr/lib/postgresql/10/lib/),检查是否存在postgis_topology-2.3.so(Linux系统)或postgis_topology-2.3.dll(Windows系统):

ls /usr/lib/postgresql/10/lib/postgis_topology-2.3.so

如果输出文件名,说明库已经正确安装。

步骤3:确认新旧实例的PostGIS版本一致

登录旧的PostgreSQL 9.6实例,执行以下SQL查询,确认拓扑扩展的版本:

SELECT extname, extversion FROM pg_extension WHERE extname = 'postgis_topology';

确保查询结果的extversion是2.3.x,并且PG10中安装的PostGIS版本完全匹配。

步骤4:重新运行pg_upgrade一致性检查

完成上面的步骤后,重新执行pg_upgrade的检查命令(替换成你自己的路径参数):

pg_upgrade \
  --old-datadir=/var/lib/postgresql/9.6/main \
  --new-datadir=/var/lib/postgresql/10/main \
  --old-bindir=/usr/lib/postgresql/9.6/bin \
  --new-bindir=/usr/lib/postgresql/10/bin \
  --check

如果检查通过,就可以正式执行升级了。

备选方案:临时卸载拓扑扩展(万不得已时使用)

如果实在无法安装对应版本的库,你可以先在旧实例中卸载postgis_topology扩展,完成升级后再重新创建:

  1. 登录PG9.6,对每个包含拓扑扩展的数据库执行:
    DROP EXTENSION postgis_topology CASCADE;
    
  2. 执行pg_upgrade完成升级。
  3. 登录PG10,重新创建拓扑扩展:
    CREATE EXTENSION postgis_topology;
    

⚠️ 注意:这个方案会删除拓扑相关的对象,如果你需要保留拓扑数据,尽量优先用前面的安装库文件的方法。

内容的提问来源于stack exchange,提问作者Namrata Shilpi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:47:34