Error de respaldo fallido

Tengo una base de datos externa que es la versión 16.3, y tengo un contenedor web_only en el que tengo psql (PostgreSQL) 15.12 que está dando un error durante la copia de seguridad. ¿Cómo resuelvo el problema de la versión?
Gracias

¿Podrías enviar el error aquí, formateado en triple comilla invertida (```)?
¡Gracias!

[2025-05-08 03:32:20] ¡'system' ha iniciado la copia de seguridad!
[2025-05-08 03:32:20] Marcando la copia de seguridad como en ejecución...
[2025-05-08 03:32:20] Asegurándose de que '/var/www/discourse/tmp/backups/default/2025-05-08-033220' existe...
[2025-05-08 03:32:20] Asegurándose de que '/var/www/discourse/public/backups/default' existe...
[2025-05-08 03:32:20] Actualizando metadatos...
[2025-05-08 03:32:20] Volcando el esquema público de la base de datos...
[2025-05-08 03:32:20] pg_dump: error: abortando debido a discrepancia en la versión del servidor
[2025-05-08 03:32:20] pg_dump: detalle: versión del servidor: 16.3; versión de pg_dump: 15.12 (Debian 15.12-1.pgdg120+1)
[2025-05-08 03:32:20] EXCEPCIÓN: pg_dump falló
[2025-05-08 03:32:20] /var/www/discourse/lib/backup_restore/backuper.rb:173:in dump_public_schema```

Quizás sea el hecho de que, si mal no recuerdo, Discourse admite hasta Postgres 15.

¿Y quizás también sea el hecho de que las dos versiones de la base de datos no son las mismas (una 16 y la otra 15)?

Estoy bastante seguro de que el problema es que tienes la versión 16 y Discourse tiene las herramientas de PG15. Necesitas entrar en el contenedor y cambiar a las herramientas de PG16.

La solución a más largo plazo es añadir código a tu app.yml que actualice las herramientas de PG cuando construyas un nuevo contenedor.

Hice eso por alguien hace un tiempo, pero ya no trabajo para ellos y no encuentro mi código.

Buscarías “cómo actualizar a PG16” y luego harías eso dentro del contenedor. Luego añadirías cosas a app.yml para que lo haga cuando se reconstruya.

2 Me gusta

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.