Comment corriger les erreurs pg dump version mismatch?
en essayant d'obtenir des données locales à Heroku, je rencontre un décalage de version entre deux versions différentes de pg_dump.
plus Précisément, je reçois ce message:
pg_dump: server version: 9.2.2; pg_dump version: 9.1.4
pg_dump: aborting because of server version mismatch
j'ai trouvé d'autres avec ce problème, mais ne sais pas assez pour mettre en œuvre les solutions proposées. (Je suis nouveau sur Ruby on Rails, PostgreSQL, Heroku, et les Mac! Beaucoup au stade de jouer autour de la cueillette choses vers le haut que je vais.)
je pensais que je pourrais simplifier ma vie si je désinstallais tous les PostgreSQL sur ma machine locale et que je recommençais avec une installation propre de PostgreSQL 9.2.2 de http://postgresapp.com/, but I don't know how to go about doing the uninstall.
je dirige Mac OS X Mountain Lion 10.8.2.
6 réponses
OS X 10.8 vient avec pg_dump
version 9.1.4 dans le /usr/bin
répertoire, avec psql
et d'autres programmes qui sont côté client PostgreSQL tools. Cela ne signifie pas que PostgreSQL en tant que serveur est installé (sauf si vous avez OS X Server Edition).
Donc, vous n'avez pas à désinstaller PostgreSQL parce qu'il n'est pas installé et il est préférable de ne pas enlever ces outils client postgres /usr/bin
parce qu'ils appartiennent au système livré par Apple. Ils ont juste besoin d'être côté intensifié.
Le paquet fourni par postgres.app comprend à la fois le serveur PostgreSQL et les outils côté client de la même version que ce serveur. Ces outils sont installés dans /Applications/Postgres.app/Contents/MacOS/bin
pour utiliser ceux-ci à la place de ceux 9.1 D'Apple lorsque vous travaillez dans un Terminal, postgres.app documentation dit de faire:
PATH="/Applications/Postgres.app/Contents/MacOS/bin:$PATH"
et la mettre dans votre .profile
fichier.
une fois que vous avez fait cela et vous courrez pg_dump
, vous ne plus l'erreur c'est que c'est la mauvaise version, parce que ce serait celui qui est livré avec postgres.application (pour l'instant 9.2.2).
j'ai cette configuration et il fonctionne bien pour moi.
si vous avez seulement besoin de mettre à jour votre pg_dump vers la dernière version et que vous avez homebrew et mac, si l'application a la dernière version et que votre pg local n'a pas:
brew upgrade postgresql
si vous utilisez postgresapp 9.3.x, le chemin est différent. Ce qui suit a fonctionné pour moi (courtoisie de 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
consultez ici le dernier chemin: http://postgresapp.com/documentation/cli-tools.html
je dirige Mountain Lion Server. Mon serveur PostgeSQL est à la version 9.2.1 et les outils par défaut sont à la version 9.1.5.
j'ai eu à utiliser:
PATH="/Applications/Server.app/Contents/ServerRoot/usr/bin:$PATH"
pour que ça marche.
Yep, parfois, si vous exécutez Postgres.cela peut se produire après la mise à niveau. Assurez-vous de redémarrer vos Postgres.app-it va mettre à jour votre chemin.
dans mon cas j'ai postgresql installé via homebrew et les exécutables sont ici: /usr/local/opt/postgresql@9.6/bin
ou vous copiez le dump et restaurez les exécutions dans le fichier /Applications/Postgres.app / Contents / SharedSupport folder
ou dans PdAgmin vous pointer le PG bin Chemin (dans propriétés -> Chemin d'accès binaire) pour le chemin d'accès des fichiers exécutables de votre postgre