2013-07-21 188 views
1

当我在Rails应用程序的数据库上运行rake任务时,出现以下错误。pg_dump服务器版本不匹配

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

我搜索了一下,发现了一些关于更新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/[email protected]/bin:/Users/andrewharvey/.rvm/gems/[email protected]/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/[email protected]/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" 

回答

3

下面的输出显示了什么?它看起来像你试图使用的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,自制大概在/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/[email protected]/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" 
+0

喜BMA,我已经添加了输出到我的问题上面。我有一种感觉,$ path可能是问题,因为条目是我的.zshrc文件看起来相当混乱。不幸的是我对我的理解还不够自信,无法调试和编辑它(我已经将相关位添加到了我的问题中)。顺便说一句,我已经从自制软件安装postgres,如果这是相关的。 –

4

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

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

然后运行

. ~/.profile 
+1

太棒了。你不知道我多久搜索这个答案 – user2104778