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.

24
demandé sur the Tin Man 2013-01-05 09:23:08

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.

26
répondu Daniel Vérité 2013-01-05 15:50:29

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

25
répondu drjorgepolanco 2016-08-12 05:58:54

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

7
répondu user1322092 2017-09-06 00:55:42

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.

2
répondu samvax 2013-12-27 20:03:09

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.

1
répondu Lukasz Muzyka 2015-02-10 04:48:34

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

1
répondu Michel Anderson Lütz Teixeira 2018-01-24 22:19:17