Восстановление из резервной копии не удалось из-за миграции S3

Я попытался выполнить миграцию экземпляра Discourse на новый сервер, но восстановление через UI и CLI не удалось в ходе операции восстановления. Проблема связана с миграцией в S3.

Также у меня были включены следующие настройки в консоли Rails:

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)

Соответствующая часть лога ошибки:

Remapping '//thinnal.s3.dualstack.us-east-1.amazonaws.com/' to '/uploads/default/'
incoming_emails=2
optimized_images=3851
post_revisions=86
posts=618
stylesheet_cache=10
topic_links=107
topics=150
uploads=419
user_histories=20
Migrating uploads to S3...
Checking if default already migrated...
1971 of 1977 uploads are not migrated to S3. S3 migration failed for db 'default'.
266 posts are not remapped to new S3 upload URL. S3 migration failed for db 'default'.
Looking for missing uploads on: default

0 post uploads are missing.

No posts require rebaking
Migrating uploads to S3 for 'default'...
Some uploads were not migrated to the new scheme. Please run these commands in the rails console

SiteSetting.migrate_to_new_scheme = true
Jobs::MigrateUploadScheme.new.execute(nil)
Restore process was cancelled!
Trying to rollback...
Rolling back...
Cleaning stuff up...
Dropping function from the discourse_functions schema
Removing tmp '/var/www/discourse/tmp/restores/default/2019-09-02-140750' directory...
Unpausing sidekiq...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.

Есть похожий отчет о вашем поиске. Я думаю, что решение заключалось в отключении загрузки в S3 при восстановлении?

Спасибо @pfaffman. Давайте попробую это.

Вы знаете какой-либо способ отключить загрузку в S3 через командную строку (rails console)?

Загрузка в S3 была отключена во время восстановления. Это всё равно не удалось.

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

Спасибо! Да, я отключил загрузку в S3 перед созданием резервной копии, и восстановление прошло успешно.

Привет,

Что делать, если резервная копия была создана, пока она была включена :slight_smile:

Я решил;

Открыл dump.sql в программе EmEditor, поискал enable_s3_uploads, S3 и заменил все «t» на «f», а все «true» на «false».

Восстановление прошло успешно :slight_smile:

Что ж, тогда вам придётся самому взяться за дело. Извините за это. Я планирую начать рефакторинг и улучшение резервного копирования и восстановления на следующей неделе, но может пройти некоторое время, пока всё снова не заработает как по маслу.

Это отлично! Я как раз собирался предложить именно эти шаги. :wink:

Для тех, кто будет читать это в будущем: если вам нужно отредактировать файл dump.sql (который может быть довольно большим), я рекомендую использовать редактор Scintilla and SciTE. Он без проблем работает с такими большими файлами.