Problema al reconstruir Discourse en Docker

Hola,

Me encuentro con un problema de actualización. Cuando intento actualizar Discourse a través de la página de administración/actualización, recibo información sobre la antigua imagen de Docker.

Así que intento conectarme al servidor de Discourse y actualizar escribiendo los comandos git pull y luego reconstruyendo la aplicación. Pero ahora he recibido el siguiente error:

...
success Cleared cache.
Done in 8.44s.

I, [2022-03-08T17:16:03.605966 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2022-03-08T17:16:08.549201 #1]  INFO -- : 
I, [2022-03-08T17:16:08.549823 #1]  INFO -- : cd /var/www/discourse & su discourse -c 'bundle exec rake db:migrate'
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

ERROR:  syntax error at or near "CASCADE"
LINE 1: ...ION IF EXISTS sync_bookmarks_polymorphic_column_data CASCADE
                                                                ^
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `exec'
...
/usr/local/bin/bundle:25:in `<main>'

Caused by:
PG::SyntaxError: ERROR:  syntax error at or near "CASCADE"
LINE 1: ...ION IF EXISTS sync_bookmarks_polymorphic_column_data CASCADE
                                                                ^
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rack-mini-profiler-3.0.0/lib/patches/db/pg.rb:110:in `exec'

Intenté actualizar Discourse con la sección de plugins comentada. Pero no ayudó.

Buscando en Discourse sobre la función sync_bookmarks_polymorphic_column_data, solo encuentro este cambio en el código de Discourse DEV: Drop bookmark trigger correctly (#15486)

¿Dónde puedo encontrar más información sobre lo que sucedió? ¿O cómo intentar reconstruir Discourse sin el cambio anterior?

¿Omitiste una actualización de PostgreSQL al forzar una versión antigua de la base de datos en tu app.yml?

Me temo que necesitarás actualizar a nuestra versión compatible siguiendo Actualización de PostgreSQL 13

3 Me gusta

Hola Rafael,

¡Buena pregunta! ¿Cómo puedo omitir una actualización de PostgreSQL? ¿Hay una lista de atributos que pueda usar en app.yml?

1 me gusta

Si utiliza una plantilla específica de Postgresql con un número de versión, esto omitirá la actualización.
por ejemplo, usar

templates:
  - "templates/postgres.12.template.yml"

en lugar de

templates:
  - "templates/postgres.template.yml"

fijará Postgres a la versión 12 en lugar de ‘latest’, que actualmente es PG 13.