Подтвердить что ты не робот

Как исправить ошибки несоответствия версии pg_dump?

При попытке получить локальные данные в Heroku, я сталкиваюсь с несоответствием версии между двумя различными версиями pg_dump.

В частности, я получаю это сообщение:

pg_dump: server version: 9.2.2; pg_dump version: 9.1.4
pg_dump: aborting because of server version mismatch

Я нашел других с этой проблемой, но недостаточно знаю, чтобы реализовать предлагаемые решения. (Я новичок в Ruby on Rails, PostgreSQL, Heroku и Mac! Очень на этапе игры вокруг выбора, когда я ухожу.)

Я думал, что могу упростить свою жизнь, если я удалю весь PostgreSQL на своем локальном компьютере и снова начал с чистой установки PostgreSQL 9.2.2 из http://postgresapp.com/, но я не знаю, как это сделать.

Я запускаю Mac OS X Mountain Lion 10.8.2.

4b9b3361

Ответ 1

OS X 10.8 поставляется с pg_dump версией 9.1.4 в каталоге /usr/bin вместе с psql и другими программами, которые являются клиентскими средствами PostgreSQL. Это не означает, что PostgreSQL как сервер установлен (если у вас нет OS X Server Edition). Поэтому вам не нужно удалять PostgreSQL, потому что он не установлен, и лучше не удалять эти клиентские инструменты postgres в /usr/bin, потому что они принадлежат к системе, поставляемой Apple. Они просто должны быть побочными.

Пакет, предоставляемый postgres.app, включает как сервер PostgreSQL, так и клиентские инструменты той же версии, что и этот сервер. Эти инструменты устанавливаются в /Applications/Postgres.app/Contents/MacOS/bin

Чтобы использовать их вместо 9.1 из Apple, когда вы работаете в терминале, postgres.app documentation говорит:

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

и поместите его в свой .profile файл.

После того, как вы это сделали, и вы запустите pg_dump, вы больше не будете получать ошибку в неверной версии, потому что это будет тот, который поставляется с postgres.app(в настоящее время 9.2.2).

У меня есть эта настройка, и она работает нормально для меня.

Ответ 2

Если вам нужно только обновить pg_dump до последней версии, и у вас есть доморощенный и mac, если у приложения установлена ​​последняя версия, а ваш локальный pg не работает:

brew upgrade postgresql

Ответ 3

Если вы используете postgresapp 9.3.x, путь отличается. Следующие работали для меня (любезно предоставлено http://sigmyers.com/blog/2013/3/12/postgres-pgdump-version-mismatch-error-postgresapp-postgresappcom)

export PG_BIN_PATH="/Applications/Postgres.app/Contents/Versions/9.3/bin/"
PATH=$PG_BIN_PATH:$PATH

Проверьте здесь последний путь: http://postgresapp.com/documentation/cli-tools.html

Ответ 4

Я запускаю сервер Mountain Lion. Мой сервер PostgeSQL находится в версии 9.2.1, а инструменты по умолчанию - 9.1.5.

Мне пришлось использовать:

PATH="/Applications/Server.app/Contents/ServerRoot/usr/bin:$PATH"

чтобы он работал.

Ответ 5

Да, иногда, если вы запускаете Postgres.app, это может произойти после обновления. Убедитесь, что вы перезапустили свой Postgres.app - он обновит вашу PATH.

Ответ 6

В моем случае у меня есть postgresql, установленный через homebrew, и исполняемые файлы находятся здесь:/usr/local/opt/[email protected]/bin

Или вы копируете дамп и восстанавливаете выполнение в папку /Applications/Postgres.app/Contents/SharedSupport

или в PdAgmin вы указываете путь PG bin (в свойствах → двоичный путь) к пути к исполняемым файлам вашего postgre