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

MacOS Big Sur下psycopg2与PostgreSQL 14兼容性问题咨询

psycopg2与PostgreSQL 14兼容性说明

psycopg2 完全支持 PostgreSQL 14 及更高正式版本,你遇到的报错并非 psycopg2 对 PostgreSQL 14 不兼容导致。

报错根因分析

你遇到的psycopg2.errors.UndefinedFunction: function array_cat(anyarray, anyarray) does not exist报错,通常由以下几类问题触发:

  • PostgreSQL 升级流程不完整:brew 升级 PostgreSQL 默认仅升级二进制文件,不会自动迁移旧版本数据库集群的系统 schema、内置函数配置,未执行pg_upgrade或数据导出导入操作直接切换新版本,就会出现内置函数找不到的异常。
  • psycopg2 版本过旧:2.9.1 之前的 psycopg2 版本适配 PostgreSQL 14 新特性时存在缺陷,可能触发函数调用异常。
  • 数据库search_path配置异常:如果search_path未包含pg_catalog schema,调用系统内置函数时会无法索引到对应实现。

无需降级 PostgreSQL 的修复方案

  • 升级 psycopg2 到最新稳定版:开发环境可直接执行pip install --upgrade psycopg2-binary,生产环境建议编译安装对应最新版本的 psycopg2。
  • 检查数据库 search_path 配置:执行 SQL SHOW search_path;确认返回结果包含pg_catalog,如缺失可执行ALTER ROLE 你的数据库用户名 SET search_path = 原有自定义schema列表, pg_catalog;修复。
  • 补全 PostgreSQL 数据迁移流程:将 PostgreSQL 13 的数据用pg_dump全量导出后,导入到 PostgreSQL 14 的新集群中,确保系统 schema 和内置函数完整。

psycopg2 支持的 PostgreSQL 版本列表

当前 psycopg2 稳定版支持所有仍在官方维护周期内的 PostgreSQL 版本:

  • PostgreSQL 10 ~ 17 所有正式发布版本
    如果需要兼容 PostgreSQL 7.4 ~ 9.6 等已停止维护的历史版本,需使用 2.8.x 及更低版本的 psycopg2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 13:54:04