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

Docker环境下pg_dump与PostgreSQL服务器版本不匹配问题求助

解决pg_dump版本不匹配问题

问题现状

本地pg_dump版本为13.1,Docker中PostgreSQL服务器版本为14.5,执行rails db:migrate时出现版本不匹配错误:

pg_dump: error: server version: 14.5 (Debian 14.5-2.pgdg110+2); pg_dump version: 13.1

此前在.profile中添加的路径指向pgAdmin的applet,并非PostgreSQL二进制文件目录,因此无效。

解决方法

方法一:更新本地PATH指向对应版本的PostgreSQL bin目录

  1. 定位PostgreSQL 14的bin目录

    • 若通过Postgres.app安装,路径通常为:/Applications/Postgres.app/Contents/Versions/14/bin
    • 若通过Homebrew安装,路径为:/usr/local/Cellar/postgresql@14/14.5/bin(请根据实际安装版本调整路径)
  2. 修改环境变量配置文件

    • 打开终端,编辑~/.zshrc(Mac默认shell为zsh,若用bash则编辑~/.profile):
      open ~/.zshrc
      
    • 在文件顶部添加以下内容(替换为你找到的正确路径):
      export PATH="/Applications/Postgres.app/Contents/Versions/14/bin:$PATH"
      
    • 保存文件后,执行命令更新环境变量:
      source ~/.zshrc
      
  3. 验证版本
    运行以下命令确认pg_dump版本已更新:

    pg_dump --version
    

    输出显示14.x版本后,重新执行rails db:migrate即可。

方法二:直接在Docker容器内执行pg_dump(推荐,规避本地版本依赖)

由于PostgreSQL运行在Docker中,可直接使用容器内的pg_dump(版本与服务器完全一致):

docker exec -it [你的PostgreSQL容器名称] pg_dump -U [数据库用户名] [目标数据库名] > dump.sql

若要在Rails流程中使用容器内工具,可调整数据库配置或用Docker Compose统一管理服务,确保工具版本匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:15:20