Спасибо @Falco, очень ценю! Всё прошло абсолютно гладко ![]()
Я переехал на новый сервер, но, похоже, можно было остаться и на старом.
На случай, если кому-то ещё понадобится эта информация, вот более подробные шаги (обратите внимание: мои настройки S3 были указаны только в файле app.yml, как описано здесь, в настройках администратора ничего не менялось):
-
На исходном сайте, если это не откат, включите «отключить электронную почту» (возможно, это не обязательно) и переведите сайт в режим только для чтения (не забудьте отключить эти настройки на новом экземпляре после завершения миграции). Создайте резервную копию; после завершения можно остановить старый экземпляр (./launcher stop app). Независимо от того, выполняется ли откат или нет, обновите A-записи DNS, указав новый IP-адрес сервера. Эти действия можно выполнить более элегантным способом или в другом порядке, чтобы минимизировать время простоя, но для моего случая (откат, форум ещё не запущен) простой не был проблемой.
-
Установите Discourse на новый сервер и перенесите все пользовательские настройки из app.yml, включая настройки S3. Версии Discourse должны быть одинаковыми или близкими.
-
Закомментируйте эти две записи (другие настройки S3 в app.yml можно оставить без изменений):
DISCOURSE_S3_BACKUP_BUCKET: BucketName
DISCOURSE_BACKUP_LOCATION: s3 -
Вручную скачайте нужную резервную копию из S3 или совместимого с S3 сервиса.
-
Перейдите в каталог /var/discourse/shared/standalone/backups и создайте новую папку с именем ‘default’, если её нет (при новой установке её не будет). Затем, находясь в каталоге backups, выполните (это изменит права доступа к папке так, как они обычно устанавливаются, если Discourse создаёт локальную резервную копию — не уверен, что это обязательно):
chown -R 1000:www-data default -
Загрузите резервную копию в папку backups/default с помощью SFTP-клиента, не переименовывая файл резервной копии.
-
Пересоберите приложение:
cd /var/discourse
./launcher rebuild app -
Войдите в приложение, включите восстановление и выполните его (переименуйте BackupFileName.tar.gz):
./launcher enter app
discourse enable_restore
discourse restore BackupFileName.tar.gz
-
После завершения раскомментируйте две строки настройки резервного копирования S3 в app.yml из шага 2 и пересоберите приложение.
-
Вы можете удалить локальную папку backups/default и содержащуюся в ней резервную копию (/var/discourse/shared/standalone/backups).
Ссылка: