Postgres antiguo en imagen de Docker con dos contenedores: web y datos

Hola a todos,

Estoy atascado intentando actualizar una instancia de Discourse en Docker. Obtengo el siguiente error cuando intento reconstruir, iniciar o configurar el contenedor de cualquier otra manera:

I, [2020-11-18T15:23:37.357104 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake plugin:pull_compatible_all'
I, [2020-11-18T15:23:40.298932 #1]  INFO -- : discourse-slack-official ya está en la versión compatible más reciente
docker_manager ya está en la versión compatible más reciente

I, [2020-11-18T15:23:40.299193 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: Ha ocurrido un error, todas las migraciones posteriores se cancelaron:

PG::SyntaxError: ERROR: error de sintaxis en o cerca de "NOT"
LINE 2: ADD COLUMN IF NOT EXISTS image_upload_id bigint
                      ^

Tras investigar, parece que se requiere PostgreSQL 12 para la última versión de Discourse, pero esto actualmente no está incluido en la imagen oficial de Docker.

Parece que hay una rama de desarrollo en el repositorio para construir el contenedor con PostgreSQL 12, pero no hay solicitudes de extracción pendientes ni nada similar…

¿Cómo puedo proceder para corregir/actualizar mi instalación de Discourse? La ruta de actualización es incorrecta y ahora estoy luchando para recuperar los foros lo antes posible.

2 Me gusta

Nota adicional: la rama pg12 tampoco funciona (aunque parece intentar descargar una versión diferente del contenedor), todavía estoy obteniendo el mismo error en db:migrate…

Eso no es cierto. La imagen base de Discourse incluye PostgreSQL desde hace muchos meses, desde la actualización a PostgreSQL 12.

¿Podrías compartir tu archivo app.yml? Quizás forzaste una imagen base antigua en él y lo olvidaste.

2 Me gusta

¿Qué tan antigua es tu copia de discourse_docker? Sé que el script launcher está diseñado para actualizarse automáticamente, pero podría valer la pena ejecutar git pull manualmente para asegurarte.

La última imagen base debería ser:

image="discourse/base:2.0.20201004-2310"

¿Qué obtienes si ejecutas

docker images | grep discourse/base

Además, ese plugin fue obsoleto hace 3 años :scream:

2 Me gusta

Estranho, estoy en el último commit:

$ git branch -v
* master 4a4b0f8 DOCS: corregir error de sintaxis en readme

Y parece que tengo la última imagen:

$ docker images
REPOSITORY             TAG                 IMAGE ID            CREATED             SIZE
discourse/base         2.0.20201004-2310   b64c37d7ab06        6 semanas atrás         2.4GB
local_discourse/data   latest              253fd4d68068        3 años atrás         1.7GB

Me aseguré de eliminar las imágenes antiguas de Docker y he intentado reconstruir la aplicación web varias veces.

Ah, ¿necesito reconstruir primero el contenedor data o algo así? Aún no lo he tocado.

Además, ese plugin fue obsoleto hace 3 años :scream:

:see_no_evil: ¡Eso es lo siguiente en mi lista para actualizar, pero me he quedado atascado con la actualización actual!

¡Oh, estás usando la configuración de datos avanzada!

Debes detener web y reconstruir los datos para que todo el software de datos se actualice. Hay una sección para eso en PostgreSQL 12 update

8 Me gusta

Gracias por tu ayuda, reconstruyendo el contenedor data ahora…

Okay, eso parece haber funcionado, ¡gracias a todos de nuevo!

Este es el tipo de problema que se espera al heredar una instalación de Discourse y realizar una actualización por primera vez :sweat_smile:

4 Me gusta

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