Problema com reconstrução do Discourse no Docker

Olá,

Estou com um problema de atualização. Ao tentar atualizar o Discourse pela página de admin/upgrade, recebo informações sobre a imagem Docker antiga.

Então, tento me conectar ao servidor Discourse e atualizar digitando os comandos git pull e, em seguida, reconstruindo o aplicativo. Mas agora recebi o erro abaixo:

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

Tentei atualizar o Discourse com a seção de plugins comentada. Mas não ajudou.

Pesquisando no Discourse sobre a função sync_bookmarks_polymorphic_column_data, só encontro esta alteração no código do Discourse DEV: Drop bookmark trigger correctly (#15486)

Onde posso encontrar mais informações sobre o que aconteceu? Ou como tentar reconstruir o Discourse sem a alteração acima?

Você pulou uma atualização do PostgreSQL ao forçar uma versão antiga do banco de dados em seu app.yml?

Receio que você precisará atualizar para nossa versão suportada seguindo Atualização do PostgreSQL 13

3 curtidas

Olá Rafael,

Boa pergunta! Como posso pular uma atualização do PostgreSQL? Existe uma lista de atributos que posso usar em app.yml?

1 curtida

Se você usar um modelo específico do Postgresql com um número de versão nele, isso pulará a atualização.

Por exemplo, usar

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

em vez de

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

fixará o Postgres na versão 12 em vez de ‘latest’, que atualmente é PG 13.