Восстановление из старой установки мультисайта не удаётся

Что-то изменилось в процессе восстановления, что могло повлиять на резервные копии из сред с несколькими сайтами?

Сегодня пытался переместить сайт между серверами. Старый сервер был установлен как мультисайт, с nginx на входе, обрабатывающим инкапсуляцию HTTPS, и опцией force_https включенной.

Новый сервер — это автономная версия стандартной установки с использованием Let’s Encrypt.

При проверке файла резервной копии исходные загрузки присутствуют, но они, похоже, не восстановлены в файловую систему на новом сервере. Ссылки на изображения по всему сайту указывают на старый мультисайт ‘secondsite’, поэтому пути ведут к /uploads/secondsite/original, а не к /uploads/default/original.

Попытался выполнить восстановление через GUI и командную строку для надежности. Планирую разобраться в этом подробнее, но решил сначала опубликовать вопрос в канале Support, а если кто-то подтвердит, что это всё ещё поддерживаемый сценарий, перемещу его в bug.

Раньше это работало, но я не занимался этим как минимум год, возможно, даже дольше.

Значит, файлы на месте, но не там, где нужно? А база данных указывает на дефолтный сайт вместо secondsite? Похоже на ошибку, но, думаю, можно просто переименовать директорию? Или в резервной копии вообще не было папки uploads?

Они находятся в архиве резервной копии, но никогда не попадают в файловую систему.

Это странно! Звучит как ошибка. И ни в одной из систем не настроена загрузка в S3?

Верно. Я проведу ещё несколько тестов позже.

Это неожиданно. Есть ли возможность посмотреть файл резервной копии? В противном случае, если вы хотите отладить это самостоятельно, посмотрите по адресу discourse/lib/backup_restore/uploads_restorer.rb at main · discourse/discourse · GitHub.

Готовность @team разбираться в подобных вещах — это действительно здорово. На прошлой неделе @tgxworld помог мне решить проблему с пограничным случаем. :tada: