Восстановление Discourse завершается ошибкой: отношение уже существует

В результате серии неудачных событий, похоже, я не могу восстановить систему из моей последней полной резервной копии.

Полная история будет позже, но на данный момент проблема заключается в том, что при восстановлении из резервной копии возникает следующая ошибка:

Миграция базы данных…
ОШИБКА: rake db:migrate
Не удалось выполнить миграцию базы данных.
rake aborted!
StandardError: Произошла ошибка, эта и все последующие миграции отменены: (StandardError)

PG::DuplicateTable: ERROR: relation "gamification_leaderboard_scores" уже существует

Похоже, что проблема связана с моими плагинами, но я был бы признателен за помощь в расшифровке логов, чтобы найти решение и позволить восстановлению завершиться успешно.

В любом случае, вот что произошло.

Ранее сегодня я выполнил обновление Discourse до версии 2026.5.0-latest b0873d3ecd, которое внесло некоторые разрушительные изменения, из-за которых моя основная тема перестала работать. Мне следовало проверить совместимость перед обновлением.

В панике я подумал, что смогу восстановить систему из последней резервной копии, чтобы вернуться к версии Discourse, совместимой с темой. Перед восстановлением я сделал полную резервную копию, думая, что если что-то пойдет не так, у меня будет как можно больше точек восстановления.

Ну, что-то пошло не так при этом первом восстановлении, и Discourse вернулся в работу без последних 15 дней контента. При дальнейшем расследовании я нашел тему на Meta, где предлагалось переименовать файл резервной копии с 2026-04-28-033449-v20260420014648.sql.gz на 2026-04-28-033449-v20260407093145.sql.gz. Я не уверен, почему это сработало, но это хотя бы вернуло систему к состоянию вчерашней резервной копии.

Мне все еще нужно восстановить систему из последней полной резервной копии, сделанной сегодня утром, именно та, которая вызывает ошибку, показанную в начале.

Это происходило и с некоторыми другими плагинами. Похоже, миграция создала таблицу, но система миграций не распознаёт, что она была выполнена.

Я не уверен, как это сделать достаточно хорошо, чтобы объяснить кому-либо. Если говорить в общих чертах, вам нужно остановить восстановление до того, как оно начнёт миграцию (для команды восстановления есть соответствующий переключатель), а затем удалить таблицу, если я правильно понимаю. Если это имеет смысл или хотя бы отчасти понятно, вы, возможно, сможете разобраться с помощью https://ask.discourse.com/.

Если это не поможет, и вы спешите и у вас есть бюджет, вы можете обратиться в Marketplace или написать мне по электронной почте. Если вы не спешите или у вас нет бюджета, есть шанс, что кто-то сможет объяснить, что нужно сделать, так, чтобы вы поняли.