J'exécute PostgreSQL sur Debian Unstable / Sid. J'ai les versions actuelles (9.1) de postgresql
, postgresql-client
, postgresql-client-common
(143) installé.
Le problème que j'essaie est de courir pg_dump
. Je reçois cette erreur:
pg_dump: server version: 9.1.9; pg_dump version: 9.0.6
pg_dump: aborting because of server version mismatch
Je n'arrive pas à comprendre comment obtenir une version plus récente de pg_dump
. Il semble provenir du postgresql-client-common
package, et j'ai essayé de l'exécuter apt-get --reinstall
, mais cela ne m'a pas permis d'obtenir une version plus récente de pg_dump.
Comment contourner cela? Ou où puis-je trouver un package avec une version plus récente de pg_dump
?
debian
postgresql
supercheetah
la source
la source
which pg_dump
vous montre? Juste pour confirmer qu'il s'agit bien de la version packagée et non d'une autre./usr/bin/pg_dump
etdpkg -S /usr/bin/pg_dump
ça me donnepostgresql-client-common: /usr/bin/pg_dump
.Réponses:
Quelques options.
Téléchargez .deb 9.1 depuis le site Postgres
Jetez un œil à cette page intitulée: Téléchargements Linux (Debian) - PostgreSQL . Vous pouvez soit télécharger un .deb mis à jour depuis le site directement, soit rediriger vers leur référentiel et exécuter une commande comme celle-ci:
Backports Debian
Vous pourrez peut-être trouver des versions spécifiques ici, http://backports.debian.org/ .
Utilisez une version générique
Vous pouvez télécharger une version binaire de PostgreSQL et l'installer dans votre répertoire personnel ou
/opt
par exemple.Téléchargez l'une des pré-versions pour une utilisation en entreprise
Je n'ai pas beaucoup d'expérience avec ceux-ci, mais vous pourrez peut-être télécharger l'un d'eux similaire à une version générique et utiliser le client à partir de son installation, tel quel, videz votre base de données.
Forfaits de distribution croisée
Vous pouvez télécharger des packages qui ont été construits de manière à ce qu'ils soient indépendants de la distribution. Je viens de télécharger la version 9.1.9 et elle inclut l'
pg_dump
outil.Le logiciel est fourni au format .rpm ou .deb et s'installe dans
/opt/postgres/9.1
. Plus précisément l'pg_dump
outil est fourni ici:/opt/postgres/9.1/bin/pg_dump
.la source
pg_dump
qui est ancienne et incompatible. Y a-t-il un endroit où je peux trouver cela spécifiquement?pg_dump
commande à partir de là. Ils ne devraient pas avoir à être installés, simplement non extraits dans un répertoire. Vous devrez peut-être définir une variable d'environnement pour pointer vers un répertoire de bibliothèque, mais cela devrait être assez simple.Une autre option, qui peut vous convenir, consiste à désinstaller l'ancienne version parallèle:
sur debian / ubuntu:
Cela préserve la dernière version (par exemple, 9.1) en supprimant uniquement les anciennes bibliothèques client et serveur 8.4.
la source
Dans mon cas, j'avais deux ensembles de bases de données, certains fonctionnant sur l'ancienne version de Postgresql 8.4 et d'autres fonctionnant sur la version 9.1. Ce que j'ai fait était de localiser
pg_dump
sur une machine Linux en utilisant lalocate
commande ci-dessousÉtant donné que la valeur par défaut
/usr/bin/pg_dump
est pour Postgresql version 8.4, je viens de spécifier à/usr/lib/postgresql/9.1/bin/pg_dump
partir de la ligne de commande lors du dumping à partir de bases de données 9.1 qui s'exécute sur un port différent et cela a fonctionné.la source
En plus des réponses ci-dessus, vous pouvez également indiquer
pg_dump
et d'autres commandes, quelle version utiliser via l'cluster
option. Par exemple,visera la version 9.1.
Notez que cela utilise
pg_wrapper
, qui est fourni avec Ubuntu (Debian)postgresql-common
et fonctionne avec lui . Notez également que le cluster ( dans l'exemple) peut être différent dans votre paramètre.main
Plus d'informations sur
pg_wrapper
peuvent être trouvées dans cette réponse DBA .la source
J'ai rencontré le même problème aujourd'hui et la réponse d'Erick semble être la plus précise. Le problème est probable que vous avez différentes versions de postgresql-client et pg_dump utilise simplement le client le plus ancien.
Vous pouvez résoudre ce problème en utilisant le chemin complet comme il l'a décrit, mais j'ai trouvé une solution plus simple pour supprimer le package postgresql-client-common (qui supprime tous les clients), puis réinstaller postgresql-client-9.3. Cela ne vous laisse que les dernières versions de pg_dump, ce que vous voulez probablement.
la source