Tecnología · GUÍA PRÁCTICA
¿pg_dump dice “server version mismatch”? Demuestra la ruta del cliente y el destino
El servidor puede estar sano; un shell, GUI, wrapper o contenedor puede ejecutar un pg_dump antiguo. Registra el binario y el endpoint, elige un cliente compatible y demuestra una restauración antes de aceptar el backup.

El servidor puede estar sano; un shell, GUI, wrapper o contenedor puede ejecutar un pg_dump antiguo. Registra el binario y el endpoint, elige un cliente compatible y demuestra una restauración antes de aceptar el backup.
pg_dump puede exportar servidores anteriores compatibles, pero rechaza un servidor de major más nuevo que el suyo. Ver la versión en un shell no demuestra que GUI, CI, wrapper o contenedor usen el mismo ejecutable.
1. Captura el caller y binario exactos
Guarda wrapper, perfil GUI, imagen de contenedor o paso CI, además de stderr, código, command -v, ruta configurada y resuelta, propietario y pg_dump --version.
Obtén la evidencia en el mismo contexto. El shell puede encontrar 18 mientras un servicio o imagen llama a 17.
2. Demuestra endpoint y major del servidor
Registra host, puerto, base y usuario sin exponer secretos. Revisa PGHOST, PGPORT y service file; consulta server_version y server_version_num en el endpoint previsto.
No deduzcas el major remoto de un paquete local o nombre de socket.
3. Elige cliente compatible sin cambiar producción
Usa un pg_dump con major no menor que el servidor de origen y que aún lo admita. Apunta el wrapper a un binario explícito o imagen fijada; no cambies archivos del servidor ni un symlink genérico a ciegas.
Cambiar el cliente no actualiza la base. Conserva el runner anterior hasta probar comando, conexión y salida.
4. Conserva el contrato y revisa la salida
Elige plain, custom o directory deliberadamente. Guarda warnings y salida cero; incluye pg_dumpall si roles o tablespaces forman parte del contrato.
En archive usa pg_restore --list. En SQL revisa cabecera y restaura con psql -X y ON_ERROR_STOP.
5. Restaura aislado antes de aceptar
Restaura en un servidor aislado del major objetivo, crea la base vacía correctamente, aplica globals y registra todo error sin borrar instrucciones desconocidas.
Valida schemas, extensions, ownership, filas, constraints y una comprobación segura de aplicación antes de aceptar el backup.
