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