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-commonpaquete, 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_dumpte muestra? Solo para confirmar que de hecho es la versión empaquetada y no otra./usr/bin/pg_dumpydpkg -S /usr/bin/pg_dumpme 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,
/optpor 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_dumpherramienta.El software se proporciona como .rpm o .deb y se instala en
/opt/postgres/9.1. En concreto, elpg_dumpse proporciona la herramienta aquí:/opt/postgres/9.1/bin/pg_dump.fuente
pg_dumpeso es antigua e incompatible. ¿Hay algún lugar donde pueda encontrar específicamente eso?pg_dumpcomando 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_dumpen la máquina Linux usando ellocatecomando a continuaciónDado que el valor predeterminado
/usr/bin/pg_dumpes Postgresql versión 8.4, acabo de especificar/usr/lib/postgresql/9.1/bin/pg_dumpdesde 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_dumpy otros comandos, qué versión usar a través de laclusteropción. Por ejemplo,apuntará a la versión 9.1.
Tenga en cuenta que esto hace uso de
pg_wrapper, que viene con Ubuntupostgresql-commony funciona en Ubuntu (Debian). También tenga en cuenta que el clúster (mainen el ejemplo) puede ser diferente en su configuración.Se
pg_wrapperpuede 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