2013-07-21 224 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