163 votes

Postgresql 9.2 Incompatibilité de version de pg_dump

J'essaie de vider une base de données Postgresql en utilisant l'outil pg_dump .

 $ pg_dump books > books.out
 

Comment jamais je reçois cette erreur.

 pg_dump: server version: 9.2.1; pg_dump version: 9.1.6
pg_dump: aborting because of server version mismatch
 

L'option --ignore-version est maintenant amortie et ne constituerait vraiment pas une solution à mon problème, même si cela avait fonctionné.

Comment puis-je mettre à niveau pg_dump pour résoudre ce problème?

85voto

Seth Points 567

Je l'ai rencontré en utilisant Heroku sur Ubuntu, et voici comment je l'ai corrigé:

(1) Ajoutez le référentiel apt PostgreSQL comme décrit ici . (Il existe des pages similaires pour d'autres systèmes d'exploitation.)

(2) Passez à la dernière version (9.3 pour moi) avec

 sudo apt-get install postgresql
 

(3) Recréez le lien symbolique en /usr/bin avec

 sudo ln -s /usr/lib/postgresql/9.3/bin/pg_dump /usr/bin/pg_dump --force
 

43voto

user2148301 Points 349

Les Mac ont une commande intégrée /usr/bin/pg_dump utilisée par défaut.

Avec l’installation postgresql, vous obtenez un autre binaire à /Library/PostgreSQL/<version>/bin/pg_dump

30voto

francs Points 1829

Vous pouvez installer PostgreSQL 9.2.1 sur la machine cliente pg_dump ou simplement copier le $PGHOME de la machine serveur PostgreSQL sur la machine cliente. Notez qu'il n'est pas nécessaire de initdb un nouveau cluster sur l'ordinateur client.

Une fois que vous avez fini d’installer le logiciel 9.2.1, n'oubliez pas de modifier certaines variables d’environnement dans votre fichier .bash_profile .

19voto

Abe Voelker Points 7306

Si vous êtes sur Ubuntu, une ancienne version de postgresql-client installée. Selon les versions de votre message d'erreur, la solution serait la suivante:

 sudo apt-get remove postgresql-client-9.1
sudo apt-get install postgresql-client-9.2
 

12voto

sola Points 2470

Chaque fois que vous mettez à niveau ou réinstallez une nouvelle version de PostgreSQL, une dernière version de pg_dump est installée.

Il doit y avoir un répertoire PostgreSQL/bin quelque part sur votre système, sous la dernière version de PostgreSQL que vous avez installée (la version 9.2.1 est la plus récente) et essayez d’exécuter le pg_dump depuis cet emplacement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X