Estoy ejecutando PostgreSQL en Debian Unstable / Sid. Tengo las versiones actuales (9.1) de postgresql
, postgresql-client
, postgresql-client-common
(143) instalado.
El problema que tengo es intentar ejecutar pg_dump
. Recibo este error:
pg_dump: server version: 9.1.9; pg_dump version: 9.0.6
pg_dump: aborting because of server version mismatch
Parece que no puedo entender cómo obtener una versión más nueva de pg_dump
. Parece provenir del postgresql-client-common
paquete, y he intentado ejecutarlo apt-get --reinstall
, pero eso no me dio una versión más nueva de pg_dump.
¿Cómo evito esto? ¿O dónde puedo encontrar un paquete con una versión más reciente de pg_dump
?
debian
postgresql
supercheetah
fuente
fuente
which pg_dump
te muestra? Solo para confirmar que de hecho es la versión empaquetada y no otra./usr/bin/pg_dump
ydpkg -S /usr/bin/pg_dump
me dapostgresql-client-common: /usr/bin/pg_dump
.Respuestas:
Un par de opciones
Descargue .deb 9.1 desde el sitio de Postgres
Eche un vistazo a esta página titulada: Descargas de Linux (Debian) - PostgreSQL . Puede descargar un .deb actualizado del sitio directamente, o volver a apuntar a su repositorio y hacer un comando como este:
Backports de Debian
Puede encontrar versiones específicas aquí, http://backports.debian.org/ .
Use una versión genérica
Puede descargar una compilación binaria de PostgreSQL y colocar la instalación en su directorio de inicio o,
/opt
por ejemplo.Descargue una de las compilaciones previas para uso empresarial
No tengo mucha experiencia con estos, pero es posible que pueda descargar uno de estos similar a una versión genérica y usar el cliente desde su instalación, como es, volcar su base de datos.
Paquetes de distribución cruzada
Puede descargar paquetes que se han creado para que sean independientes de la distribución. Acabo de descargar la versión 9.1.9 y sí incluye la
pg_dump
herramienta.El software se proporciona como .rpm o .deb y se instala en
/opt/postgres/9.1
. En concreto, elpg_dump
se proporciona la herramienta aquí:/opt/postgres/9.1/bin/pg_dump
.fuente
pg_dump
eso es antigua e incompatible. ¿Hay algún lugar donde pueda encontrar específicamente eso?pg_dump
comando desde allí. No deberían tener que instalarse, solo no estar ordenadas en un directorio. Puede que tenga que establecer una variable de entorno para apuntar a un directorio de biblioteca, pero debería ser bastante sencillo.Otra opción, que puede ser adecuada para usted, es desinstalar la versión paralela anterior:
en debian / ubuntu:
Eso conserva la versión posterior (por ejemplo, 9.1) eliminando solo las bibliotecas de cliente y servidor 8.4 anteriores.
fuente
En mi caso, tenía dos conjuntos de bases de datos, algunos con la versión anterior de Postgresql 8.4 y otros con la versión 9.1. Lo que hice fue localizar
pg_dump
en la máquina Linux usando ellocate
comando a continuaciónDado que el valor predeterminado
/usr/bin/pg_dump
es Postgresql versión 8.4, acabo de especificar/usr/lib/postgresql/9.1/bin/pg_dump
desde la línea de comandos al volcar desde bases de datos 9.1 que se ejecutan en un puerto diferente y funcionó.fuente
Además de las respuestas anteriores, también puede decirle
pg_dump
y otros comandos, qué versión usar a través de lacluster
opción. Por ejemplo,apuntará a la versión 9.1.
Tenga en cuenta que esto hace uso de
pg_wrapper
, que viene con Ubuntupostgresql-common
y funciona en Ubuntu (Debian). También tenga en cuenta que el clúster (main
en el ejemplo) puede ser diferente en su configuración.Se
pg_wrapper
puede encontrar más información sobre en esta respuesta de DBA .fuente
Me encontré con el mismo problema hoy y la respuesta de Erick parece ser la más precisa. El problema es probable que tenga diferentes versiones del postgresql-client y pg_dump solo esté usando el cliente más antiguo.
Puede resolver esto utilizando la ruta completa como él describió, pero encontré una solución más fácil para eliminar el paquete postgresql-client-common (que elimina todos los clientes), luego reinstalar postgresql-client-9.3. Esto te deja con solo las últimas versiones de pg_dump que probablemente quieras que quieras.
fuente