Миграция старой продуктивной инстансы Discourse 1:1 на тестовый сервер

Здравствуйте! Я взял на себя роль администратора в одном сообществе и сейчас столкнулся с задачей обновить форум до актуальной версии.

Обновления не проводились уже давно из-за проблем с плагином Calendar.

Я арендовал дополнительный сервер и хочу сначала запустить на нём точную копию (1:1) рабочей среды.

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

Мы работаем на
Discourse 3.2.0.beta1-dev (19567daeb9)

со следующими плагинами и версиями:

и PostgreSQL 13.

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

Сейчас главная сложность заключается в следующем:
как создать точную копию моей старой версии, включая старую базу данных PostgreSQL и старые плагины?

Буду очень признателен новичку за любые подсказки или ссылки.

Большое спасибо за ваше время и с наилучшими пожеланиями,
Ричард

Привет!

Это может стать хорошей отправной точкой:

Спасибо за вашу помощь!

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

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

Тем не менее, для некоторых (как и для нашего сообщества в период, когда плагин больше не был совместим с программным обеспечением) может быть очень полезно знать, как в таком случае создать тестовый экземпляр в качестве точной копии 1:1, чтобы протестировать дальнейшие шаги в безопасной среде без влияния на продуктивную систему.

Если вы используете провайдера, который может клонировать весь ваш VPS, это может стать удобным решением:

Кроме того, процесс переноса сайта с использованием rsync, по-видимому, позволяет скопировать весь сайт один к одному…
Перенос сайта Discourse на другой VPS с помощью rsync — Вики сообщества / Системные администраторы
[ПРАВКА: не один к одному, если выполнять предписанную пересборку. Нужно запускать без пересборки.)

Базовый процесс выглядит довольно простым, хотя в комментариях предлагаются модифицированные подходы и параметры команд. Сам я этого не делал. Если бы пришлось, я бы начал с основ и посмотрел, как всё пойдёт. В комментариях обсуждается несколько возможных подводных камней.

Но это же подразумевает пересборку форума, верно?

С другой стороны, это может сработать:

(Кстати, чем эта тема отличается от связанной с ней?)

То, что я процитировал сам, — это то, что я пробовал, но не сработало.
Создание точной копии (1:1) через Snap-пакет провайдера, отключение HTTPS.

Я также пробовал много чего, меняя конфигурацию через Rails, но не смог заставить это работать, так что способ через Snap для меня вообще не работает. Поэтому я спрашиваю здесь, как это сделать. (Даже если я уже решил свою проблему, это может быть полезно в будущем)

Да, что снова приводит к обновлениям, почему это не должно работать.

Спасибо, ребята

Ох, да, отличная заметка. Я, должно быть, слишком долго не спал. Идея Пфафмана, впрочем, интересна.

Какую проблему, по-вашему, вы решаете, создавая ещё один сайт с использованием того же контейнера?

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

Кроме того, существуют новые образы, которые пока не поддерживаются, но могут быть запущены напрямую, поэтому, возможно, стоит поискать темы, посвящённые им.