【问题标题】:pg_dump server version mismatch [duplicate]pg_dump 服务器版本不匹配 [重复]
【发布时间】:2013-07-20 01:46:33
【问题描述】:

每当我在 Rails 应用程序的数据库上运行 rake 任务时,都会收到以下错误。

pg_dump: server version: 9.2.4; pg_dump version: 9.1.5
pg_dump: aborting because of server version mismatch

我在 Google 上四处搜索,发现了一些关于更新 postgres brew 包的建议,但这不起作用。

为什么使用了不正确的 pg_dump 版本,我该如何解决这个问题?或者我应该寻找哪些搜索词来找到解决方案?

编辑

关于我的 pg_dump 配置的信息:

$ pg_dump --version
> pg_dump (PostgreSQL) 9.1.5
$ which pg_dump
> /usr/bin/pg_dump
$ echo $PATH
> /Users/andrewharvey/.rvm/gems/ruby-1.9.3-p392@mantawatch/bin:/Users/andrewharvey/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/andrewharvey/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/andrewharvey/.rvm/bin:/usr/local/heroku/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/andrewharvey/.rvm/bin

我正在使用 oh_my_zsh,路径在我的 .zshrc 文件中定义。这可能是我的问题的原因(我确信这可以被清理),不幸的是我不知道我在做什么来调试和编辑它。感谢指点(我正在使用通过 Homebrew 安装的 RVM 和 postgres)。

source $ZSH/oh-my-zsh.sh

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

alias pg='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log'

export
 PATH=$PATH:/usr/local/bin:/Users/andrewharvey/.rvm/gems/ruby-2.0.0-p0/bin:/Users/andrewharvey/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/andrewharvey/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/andrewharvey/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"

【问题讨论】:

    标签: ruby-on-rails postgresql homebrew


    【解决方案1】:

    对于 mac 用户 放在 .profile 文件的顶部。

    export PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
    

    然后运行

    . ~/.profile
    

    【讨论】:

    • 太棒了。你不知道我搜索这个答案多长时间
    【解决方案2】:

    以下输出显示什么?看起来您尝试使用的 pg_dump 版本是 9.1 版本,而您要连接的集群是 9.2。如果是这种情况,那么您需要确定 9.2 pg_dump 的正确路径。

    pg_dump --version
    
    which pg_dump
    
    echo $PATH
    

    [在 OP 提供更多细节后编辑]

    根据这个页面:https://wiki.postgresql.org/wiki/Installers/Mac_OS_X,homebrew 可能在/usr/local/bin 安装了工具。但是,您当前的 $PATH 具有位于其他几条路径之后的 /usr/local/bin。 我已经整理了您的 $PATH 设置。因此,请尝试将以下更改保存到您的 .zshrc 文件中并获取它以获取更改 (source ~/.zshrc)。

    export PATH=/usr/local/bin:/Users/andrewharvey/.rvm/gems/ruby-2.0.0-p0/bin:/Users/andrewharvey/.rvm/gems/ruby-2.0.0-p0@global/bin:/Users/andrewharvey/.rvm/rubies/ruby-2.0.0-p0/bin:/Users/andrewharvey/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH
    export PATH="/usr/local/heroku/bin:$PATH"
    

    【讨论】:

    • 嗨 bma,我已将输出添加到上面的问题中。我觉得 $path 可能是问题所在,因为条目是我的 .zshrc 文件看起来很乱。不幸的是,我对调试和编辑它的理解还不够自信(我已在我的问题中添加了相关位)。顺便说一句,我已经从 homebrew 安装了 postgres,如果这相关的话。
    猜你喜欢
    • 2014-02-03
    • 2014-04-10
    • 2020-12-29
    • 2012-12-19
    • 1970-01-01
    • 2016-06-12
    • 2021-09-07
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多