Estoy ejecutando Discourse en un contenedor Docker independiente en /var/discourse.
Intenté actualizar la base de datos PostgreSQL integrada de la versión 15 a la 18. La actualización parecía completarse, y el directorio de datos activo ahora informa:
/shared/postgres_data/PG_VERSION
18
Sin embargo, el contenedor de Discourse reconstruido solo contiene binarios de PostgreSQL 15:
/usr/lib/postgresql/15/bin/postgres
postgres (PostgreSQL) 15.18
El servicio de PostgreSQL está configurado para ejecutarse así:
/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
mientras que el directorio de datos real de Discourse está montado en:
/shared/postgres_data
En consecuencia, PostgreSQL falla con el siguiente error:
FATAL: database files are incompatible with server
DETAIL: The data directory was initialized by PostgreSQL version 18,
which is not compatible with this version 15.18
(Debian 15.18-1.pgdg12+1).
Entiendo que las imágenes Docker recientes de Discourse deberían incluir binarios de PostgreSQL 18. Cambié app.yml para usar la plantilla de PostgreSQL 18 y reconstruí la aplicación, pero el contenedor resultante sigue teniendo binarios de PostgreSQL 15 y el script del servicio sigue apuntando a /etc/postgresql/15/main.
La parte relevante de mi configuración actual del servicio es:
HOME=/var/lib/postgresql USER=postgres exec thpoff \
chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert \
/usr/lib/postgresql/15/bin/postmaster -D /etc/postgresql/15/main
Mis preguntas son:
-
¿Cuál es la forma correcta de reconstruir o actualizar el contenedor de Discourse para que realmente contenga binarios de PostgreSQL 18?
-
¿Hay alguna plantilla o etiqueta de imagen específica que deba usarse en
app.yml? -
Una vez que PostgreSQL 18 esté disponible, ¿cuál es el procedimiento compatible para iniciarlo contra el directorio existente
/shared/postgres_data?
No he eliminado ni reinicializado el directorio de datos de PostgreSQL 18. Preferiría recuperar el clúster actualizado en lugar de restaurar los datos antiguos de PostgreSQL 15.