Пустые темы после успешного восстановления резервной копии

Здравствуйте,

Я перенёс хост. Сделал полную резервную копию (с включённой опцией включения миниатюр) со старого экземпляра (последняя версия Discourse).

Изменил IP-адрес домена, затем установил новый экземпляр Discourse (классическая установка с использованием Docker).

Затем скопировал резервную копию в /var/discourse/shared/standalone/backups/default и восстановил её на новом экземпляре.

Всё прошло успешно, за исключением того, что в темах нет сообщений.

Логи, похоже, в порядке. Я могу войти в систему, всё нормально, кроме пустых тем.

Есть какие-то идеи? Куда стоит посмотреть, если проблема там? Что мне делать теперь?

Извините за тексты не на английском:

Проблема исправлена.

При восстановлении настройка CSP была принудительно включена. Некоторые компоненты темы использовали скрипты с CDN. Эти скрипты не были внесены в белый список, и из-за ошибок JS сообщения темы не отображались.

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

В любом случае, теперь я знаю: будьте бдительны, друзья!

Хорошо, что вы нашли причину проблемы.

Я бы счёл это ошибкой, если бы вы восстановили резервную копию на точно той же версии Discourse. Был ли это ваш случай? При восстановлении резервной копии из более старой версии Discourse на более новой версии вы должны ожидать, что система будет работать иначе.

Вы уже сообщили об ошибках CSP авторам компонентов темы? Это как минимум предотвратит возникновение той же проблемы у других пользователей.

Вероятно, версия новее, так как мы обновляемся только при выходе новой версии, а установка нового экземпляра автоматически заберёт последнюю версию из test-passed.

В любом случае, независимо от того, новее или старее версия, если нет каких-то особых обстоятельств, на мой взгляд, существующие настройки никогда не должны изменяться каким-либо образом. Кроме того, при работе с одной и той же базовой версией я ожидаю, что моя резервная копия будет вести себя идентично. Если изменения всё же необходимы, было бы неплохо хотя бы показывать предупреждение после подключения к Discourse (например: «По соображениям безопасности настройка CSP была включена» — вы понимаете, о чём речь) или уведомлять о любых других изменениях.

Подумайте о последствиях этого. То, чего вы хотите, потребует изменения направления в масштабах всей отрасли.

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

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

Я не понимаю. OP сказал, что резервная копия была сделана из последней версии, так что в этом случае не должно быть никаких дополнительных миграций?

Под «последней» я имел в виду последний релиз, а не последние коммиты из ветки test-passed на GitHub.
Но да, это одна и та же базовая версия 2.4.0.beta9.

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

Как уже говорилось, если значение конкретной настройки должно быть изменено, я ожидаю, что Discourse сообщит администратору, что происходит. Речь идет просто о прозрачности и облегчении жизни администратора. Моя позиция такова: никогда не следует изменять настройки пользователя, если нет веской причины, и если такая причина есть, то уведомление администратора — это нормально.