Код вашего плагина может определять миграции и/или начальное наполнение при необходимости. Он также может гарантировать, что настройки сайта имеют соответствующие значения.
Я предпочитаю использовать S3 для резервного копирования, и тогда все сайты могут использовать один и тот же набор резервных копий. Затем, когда вы создаете резервную копию на продакшене, вы можете сразу же восстановить её на своих staging-средах, чтобы убедиться, что всё работает с актуальными данными.
Мое скромное мнение, и я не хочу умалять полезность комментариев здесь о резервных копиях, но если отойти на шаг назад: я действительно не уверен, что «синхронизация» установок Discourse стоит больших усилий.
Если вы не планируете делать pull-реквесты в ядро Discourse, то разработка плагинов или компонентов тем (TC) — это то, что нужно, и это дает наиболее надежное и эффективное решение для кастомизации.
Главное в разработке плагинов и компонентов тем (TC) — они будут развертываться на нескольких экземплярах Discourse, над которыми вы, возможно, в любом случае не имеете контроля.
Так что наличие слегка уникального локального экземпляра Discourse для разработки — это вполне нормально (в разумных пределах).
Основной рабочий процесс должен включать обновление плагина или TC в общем репозитории, скорее всего, на Github.
Я полностью согласен. У меня есть несколько клиентов с кастомизациями, которые невозможно проверить (или проще всего проверить) на их реальных данных, поэтому им очень важно видеть сайт с актуальной информацией.
Да, это справедливо. Это зависит от того, что вы пытаетесь сделать и кто ваша клиентская база (одна целевая аудитория или несколько клиентов?) и насколько большим контролем вы планируете обладать.
Спасибо всем за ваши советы. Скорее всего, я буду использовать PRing в ядро Discourse. Поэтому мне нужна возможность загружать сборку в git, а оттуда — на сервер.
Если вы отправляете PR в ядро Discourse, то точная конфигурация локальной установки не критична (просто убедитесь, что у вас последняя версия), поскольку процесс внесения изменений в код и так строго контролируется, особенно с учётом тестовых случаев. Поэтому небольшие расхождения в настройках или содержимом вряд ли станут проблемой.
Обычно при совместной работе над вкладом вы сначала форкаете репозиторий вашей организации и работаете там, а затем отправляете PR?
Нет, я не работаю над совместными вкладами. Я работаю для личного использования.
Я не хотел так это формулировать.
Как я могу установить Discourse из форка Git?
Я внесу изменения в ядро Discourse и добавлю их в свой репозиторий на Git.
Сейчас я настроил Discourse.
Затем, когда всё готово, я обновляю свою сборку.
После этого я снова продолжаю разработку. Я меняю некоторые настройки в панели управления. Их может быть очень много.
Когда я захочу обновить свою сборку, мне также понадобится обновить настройки.
В этом случае мне придётся вручную настраивать параметры.