После обновления установки Discourse с версии 2.9.0.beta9 на 2.9.0.beta11 установка полностью зависла: все запросы, перечисляющие темы, внезапно возвращают ошибку column bookmarks.post_id does not exist.
Я нашел коммит, удаляющий этот столбец: f8939bd294ff6822a61fb653b44a4df351321f54, который удаляет столбец из базы данных. Проблема также возникает в безопасном режиме, поэтому я не считаю, что виноват какой-либо плагин.
Стек вызовов:
app/models/topic_list.rb:84:in `topics'
app/serializers/suggested_topics_mixin.rb:17:in `include_suggested_topics?'
(eval):6:in `_fast_attributes'
app/controllers/topics_controller.rb:1199:in `block (2 levels) in perform_show_response'
app/controllers/topics_controller.rb:1194:in `perform_show_response'
app/controllers/topics_controller.rb:169:in `show'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:366:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:202:in `call'
Не удалось обработать исключение в middleware обработки исключений: ActiveRecord::StatementInvalid : PG::UndefinedColumn: ОШИБКА: столбец bookmarks.post_id не существует
СТРОКА 1: ...marks"."bookmarkable_type" FROM "bookmarks" WHERE "bookmarks...
Я очень запутался, этот столбец игнорировался уже довольно давно.
@martin нужно было удалить его, мы больше его не используем.
У вас есть кастомная настройка? Участвуют ли какие-либо специальные плагины? Была ли эта ошибка «временной», возникшей во время выполнения миграции? (Я бы ожидал эту ошибку, возможно, при обновлении в реальном времени через веб-интерфейс в исключительных условиях)
Я использую стандартную настройку Docker с несколькими плагинами, но смог воспроизвести проблему в безопасном режиме. Кроме того, в трассировках стека нет явных ссылок на плагины.
Обновление выполнено через полную пересборку без ошибок во время миграции. Также пробовал перезапустить миграции — они сообщили об отсутствии изменений.
Ранее версии Topic List Previews (TLP) распространялись как плагин, а затем были разделены на плагин и компонент темы. При этом первоначальном разделении пользователям рекомендовалось загружать плагин из новой ветки. Однако со временем эта ветка была заброшена и больше не поддерживалась. После переключения на поддерживаемый форк всё снова работает.