Problème avec la reconstruction de Discourse sur Docker

Bonjour,

Je suis confronté à un problème de mise à jour. Lorsque j’essaie de mettre à jour Discourse via la page admin/upgrade, je reçois des informations sur l’ancienne image Docker.

J’essaie donc de me connecter au serveur Discourse et de mettre à jour en tapant les commandes git pull, puis en reconstruisant l’application. Mais maintenant, j’ai reçu l’erreur ci-dessous :

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

J’ai essayé de mettre à jour Discourse avec la section des plugins commentée. Mais cela n’a pas aidé.

En cherchant sur discourse au sujet de la fonction sync_bookmarks_polymorphic_column_data, je n’ai trouvé que cette modification dans le code de Discourse DEV: Drop bookmark trigger correctly (#15486)

Où puis-je trouver plus d’informations sur ce qui s’est passé ? Ou comment essayer de reconstruire Discourse sans la modification ci-dessus ?

Avez-vous ignoré une mise à niveau de PostgreSQL en forçant une ancienne version de la base de données dans votre fichier app.yml ?

Je crains que vous ne deviez mettre à jour vers notre version prise en charge en suivant la mise à jour de PostgreSQL 13.

3 « J'aime »

Salut Rafael,

Bonne question ! Comment puis-je ignorer une mise à niveau PostgreSQL ? Existe-t-il une liste d’attributs que je peux utiliser dans app.yml ?

1 « J'aime »

Si vous utilisez un modèle Postgresql spécifique avec un numéro de version, cela ignorera la mise à niveau.
Par exemple, utiliser

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

plutôt que

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

épinglera le Postgres à la version 12 au lieu de « latest », qui est actuellement PG 13.