Недавно я настроил сервер Discourse, предварительно потратив некоторое время на пробную версию (trydiscourse.com). При настройке я загрузил резервную копию данных с нашей пробной версии с trydiscourse.com и смог восстановить эти данные на нашем самостоятельно размещённом Discourse.
Примерно через неделю, когда пробный период заканчивался, я загрузил ещё одну резервную копию с trydiscourse.com и попытался восстановить её. На этот раз восстановление не удалось. Вот логи:
[2022-03-05 01:31:08] [STARTED]
[2022-03-05 01:31:08] 'Joaquin' начал восстановление!
[2022-03-05 01:31:08] Помечаем восстановление как запущенное...
[2022-03-05 01:31:08] Проверяем существование директории /var/www/discourse/tmp/restores/default/2022-03-05-013108...
[2022-03-05 01:31:08] Копируем архив во временную директорию...
[2022-03-05 01:31:08] Распаковываем архив, это может занять время...
[2022-03-05 01:31:08] Извлекаем файл дампа...
[2022-03-05 01:31:08] Проверяем метаданные...
[2022-03-05 01:31:08] Текущая версия: 20220220234155
[2022-03-05 01:31:08] Версия для восстановления: 20220223161000
[2022-03-05 01:31:08] ИСКЛЮЧЕНИЕ: Вы пытаетесь восстановить более новую версию схемы. Сначала нужно выполнить миграцию!
[2022-03-05 01:31:08] /var/www/discourse/lib/backup_restore/meta_data_handler.rb:31:in `validate'
/var/www/discourse/lib/backup_restore/restorer.rb:112:in `validate_backup_metadata'
/var/www/discourse/lib/backup_restore/restorer.rb:43:in `run'
/var/www/discourse/script/spawn_backup_restore.rb:23:in `restore'
/var/www/discourse/script/spawn_backup_restore.rb:36:in `block in <main>'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `fork'
/var/www/discourse/script/spawn_backup_restore.rb:4:in `<main>'
[2022-03-05 01:31:08] Пытаемся откатить изменения...
[2022-03-05 01:31:08] Откат не потребовался
[2022-03-05 01:31:08] Очищаем временные файлы...
[2022-03-05 01:31:08] Удаляем временную директорию '/var/www/discourse/tmp/restores/default/2022-03-05-013108'...
[2022-03-05 01:31:08] Помечаем восстановление как завершённое...
[2022-03-05 01:31:08] Уведомляем 'Joaquin' об окончании восстановления...
Из того, что я выяснил в ходе исследований, «схема», о которой говорится в исключении и которую нужно «сначала мигрировать», связана с базой данных, используемой Discourse.
Я искал информацию на Discourse Meta, но не нашёл обсуждений по этой теме. Также я обновил Discourse до последней версии и попытался восстановить данные снова, но результат был тем же. Я просмотрел файлы Discourse в поисках подходящего инструмента, который мог бы помочь, но ничего перспективного не нашёл.
Моя лучшая догадка на данный момент заключается в том, что за ту неделю после настройки нашего самостоятельно размещённого Discourse что-то изменилось на нашей пробной версии форума на trydiscourse.com.
Мои вопросы:
- Как выполнить миграцию, которую предлагает ошибка?
- Что именно вызвало эту ошибку восстановления? Может ли такое происходить в обычных условиях (не при переходе с пробной версии на самостоятельное размещение)?
Заранее спасибо за любую помощь! ![]()