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

django-dbbackup执行报错:pg_dump与PostgreSQL服务器版本不匹配

解决PostgreSQL版本不兼容导致的dbbackup CommandConnectorError问题

方案1:给pg_dump添加兼容参数

pg_dump 15.x可通过特定参数适配16版本的PostgreSQL服务器,直接修改Django配置即可:

  • 打开项目的settings.py,添加或更新以下配置:
    DBBACKUP_CONNECTORS = {
        'default': {
            'CONNECTOR': 'dbbackup.db.postgresql.PgDumpConnector',
            'OPTIONS': {
                'dump_args': ['--no-sync', '--no-comments', '--no-publications', '--no-subscriptions'],
            },
        }
    }
    
  • 保存后重新执行备份命令:python manage.py dbbackup

方案2:手动安装PostgreSQL 16客户端(Debian系统)

如果官方源无法升级,直接下载对应包安装:

  • 下载适配你系统架构的postgresql-client-16包(以amd64为例):
    wget https://ftp.postgresql.org/pub/repos/apt/pool/p/postgresql-16/postgresql-client-16_16.0-1.pgdg120+1_amd64.deb
    
  • 先安装依赖包,再安装客户端:
    sudo apt install libpq5=16.0-1.pgdg120+1
    sudo dpkg -i postgresql-client-16_16.0-1.pgdg120+1_amd64.deb
    
  • 验证版本:pg_dump --version,确认输出显示16.0即可

方案3:用Docker临时运行pg_dump 16

如果系统依赖锁死无法升级,用Docker容器绕开限制:

  • 替换命令里的路径、密码、主机、用户和数据库名,执行备份:
    docker run --rm -v /你的项目绝对路径:/app -e PGPASSWORD=你的数据库密码 postgres:16 pg_dump -h 数据库主机 -U 数据库用户 -d 数据库名 > /app/db_backup.sql
    
  • 生成的db_backup.sql会保存在你的项目目录中,后续可通过dbbackup管理该文件

方案4:直接调用服务器端的pg_dump

如果你能SSH登录数据库服务器,直接使用服务器上的pg_dump 16进行备份:

  • 修改settings.py配置,指定通过SSH执行服务器端的pg_dump:
    DBBACKUP_CONNECTORS = {
        'default': {
            'CONNECTOR': 'dbbackup.db.postgresql.PgDumpConnector',
            'DUMP_CMD': 'ssh 服务器用户名@数据库服务器地址 "pg_dump"',
        }
    }
    
  • 提前配置本地服务器到数据库服务器的无密码SSH登录,确保服务器端已安装pg_dump 16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 16:29:53