Проблема с пересборкой Discourse в Docker

Здравствуйте,

У меня возникла проблема с обновлением. При попытке обновить Discourse через страницу admin/upgrade я получаю информацию об устаревшем образе Docker.

Поэтому я пытаюсь подключиться к серверу Discourse и выполнить обновление, введя команду git pull, а затем пересобрать приложение. Однако теперь я получил следующую ошибку:

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

Я пробовал обновлять Discourse, закомментировав раздел плагинов, но это не помогло.

При поиске в Discourse по ключевому слову sync_bookmarks_polymorphic_column_data я нашёл только это изменение в коде Discourse: DEV: Drop bookmark trigger correctly (#15486).

Где я могу найти дополнительную информацию о том, что произошло? Или как попытаться пересобрать Discourse без указанного выше изменения?

Вы пропустили обновление PostgreSQL, принудительно указав старую версию базы данных в вашем app.yml?

К сожалению, вам потребуется обновиться до поддерживаемой нами версии, следуя инструкции Обновление PostgreSQL 13

Привет, Рафаэль!

Отличный вопрос! Как можно пропустить обновление PostgreSQL? Есть ли список атрибутов, которые можно использовать в app.yml?

Если вы используете конкретный шаблон Postgresql с указанием версии, это приведет к пропуску обновления.

Например, использование

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

вместо

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

зафиксирует версию Postgres на 12 вместо «latest», которая в настоящее время соответствует PG 13.