2013-07-21 3 views
1

Я получаю следующую ошибку, когда я запускаю задачи rake в базе данных приложения Rails.pg_dump версия сервера mismatch

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

Я Googled вокруг и нашел некоторые предложения по поводу обновления пакета Postgres заваривания, но это не сработало.

Почему используется некорректная версия pg_dump и как я могу это исправить? Или какие поисковые запросы я должен искать, чтобы найти решение?

EDIT

Информация о моей конфигурации 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. Это может быть причиной моей проблемы (и я уверен, что это можно очистить), к сожалению, я не знаю, что я делаю, чтобы отлаживать и редактировать это. Благодарен за указатели (я использую RVM и postgres, установленные через Homebrew).

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 

[редактировать после ОП при условии, более подробно]

Согласно этой страницы: 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 из homebrew, если это актуально. –

4

Для пользователей макинтош положить в начало файла .profile.

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

затем запустить

. ~/.profile 
+1

Awesome. Вы не представляете, как долго я искал этот ответ – user2104778