Instalé dos servidores PostgreSQL en mi computadora. Uno es 9.1 y el otro es 9.3. Necesito ambos servidores instalados.
Sin embargo, cuando ejecuto pg_dump, aparece un error de desajuste de versión:
server version: 9.3.6; pg_dump version: 9.1.15
pg_dump: aborting because of server version mismatch
¿Cómo puedo resolverlo? (No puedo desinstalar ninguna de las versiones: instalé la 9.1 primero y la 9.3 muchos meses después, necesito instalar ambos servidores de bases de datos).
postgresql
Luis Masuelli
fuente
fuente
pg_dump
. Ambos están instalados, pero solo uno es el predeterminado. Consulteupdate-alternatives
las rutas odpkg -L
el paquete de cliente postgresql para ver dónde están. No tengo acceso inmediato a un cuadro de Ubuntu para mostrarte yo mismo.PATH
variable de entorno con la que se ejecuta la aplicación, entonces.Respuestas:
TL; DR : si ambas instancias de PostgreSQL son administradas por los paquetes de Ubuntu (como deberían), simplemente use la
--cluster
opción para seleccionar la instancia de PostgreSQL para hacer una copia de seguridad, y elegirá automáticamente la versión correspondiente de pg_dump:pg_dump --cluster 9.1/main [other pg_dump options]
o
pg_dump --cluster 9.3/main [other pg_dump options]
.main
es solo un valor predeterminado, ejecutepg_lsclusters
para ver sus nombres reales en laCluster
columna.Cómo funciona: tal como lo instalan los paquetes de Ubuntu, en
/usr/bin/pg_dump
realidad es un enlace suave a/usr/share/postgresql-common/pg_wrapper
, cuyo propósito es precisamente seleccionar la instancia correcta y ejecutar el binario correspondiente.--cluster
no existe en los comandos comunes de PostgreSQL, es una adición de Debian / Ubuntu que está destinada a abordar este problema de múltiples versiones / múltiples rutas.Esta es la misma para
psql
,createdb
,createuser
, etc. alrededor de 18 órdenes de Postgres en/usr/bin
realidad están gestionados porpg_wrapper
.Ver man pg_wrapper para más.
fuente
version
= versión principal de postgresql ymain
= nombre predeterminado del clúster. Consulte las páginas de manual de pg_lsclusters y pg_wrapper.Puedes usar:
para encontrar sus versiones de
pg_dump
en mi caso:/usr/pgsql-9.6/bin/pg_dump
así que a continuación podemos hacer:
para actualizar a la que necesitamos
fuente