Как мигрировать Discourse с одного сервера на другой с тем же DNS-именем

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

Почти всё сработало, но восстановление на новом хосте не удалось.
Оказалось, что сопоставление UID/GID на двух хостах не было полностью идентичным, поэтому при запуске Postgres возникала ошибка из-за неверных прав владения папкой с данными.

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

Для сценария, описанного в этом посте, есть одна дополнительная деталь: контейнер ещё не собран, поэтому команда ./launcher enter app на этом этапе не работает. Поскольку процесс восстановления занял бы довольно много времени, я смог использовать docker ps, чтобы получить имя контейнера, выполняющего сборку, а затем зайти в него:

docker exec -it <container_name> bash
chown -R postgres:postgres /shared/postgres_*

Затем восстановление завершается с ошибкой (или вы не можете прервать его с помощью CTRL+C). После остановки просто запустите его снова, и права будут исправлены:

./launcher rebuild app

И всё снова работает :sweat_smile:.