Как исправить ошибки несоответствия версии 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.

6 ответов


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

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

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

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

и положил его в свой .

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

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


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

brew upgrade postgresql


Если вы используете 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


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

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

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

чтобы заставить его работать.


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


в моем случае у меня установлен postgresql через homebrew, и исполняемые файлы здесь: /usr/local/opt/postgresql@9.6/bin

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

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