Watch at EaseHistorias. Respuestas. Perspectiva.

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.

Diagrama de cliente pg_dump, endpoint y destino de restauración
Ilustración original: el nombre del comando no prueba toda la identidad del cliente. Watch at Ease

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.

Diagrama de alineación, inspección y prueba de restauración
Ilustración original: corrige el límite de versión y valida la recuperación. Watch at Ease