La actualización a PostgreSQL 18 dejó a Discourse usando binarios de PostgreSQL 15

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:

  1. ¿Cuál es la forma correcta de reconstruir o actualizar el contenedor de Discourse para que realmente contenga binarios de PostgreSQL 18?

  2. ¿Hay alguna plantilla o etiqueta de imagen específica que deba usarse en app.yml?

  3. 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.

1 me gusta

Se fusionó una publicación en un tema existente: Actualización de PostgreSQL 18 para autoalojadores