Рейтинг:1

Как именно работает каталог синхронизации конфигурации?

флаг co

У меня только что был быстрый вопрос о том, как работает синхронизация конфигурации Drupal. Я работаю над большим сайтом на Drupal, где у меня есть несколько коллег, которые присоединяются к работе над проектом. Это сайт с контролем версий, на котором мы разрабатываем локально в Docker, а затем переносим изменения на веб-сервер.

Недавно я обнаружил, что в Drupal есть функция «синхронизации конфигурации». При внесении изменений на сайт (будь то просмотры, блоки и т. д.) пользователь может перейти на эту страницу, экспортировать свою конфигурацию в файл tar и импортировать в свою локальную настройку (или наоборот, из dev в prod).

Я многому научился, и это один из способов синхронизации среды Drupal.Но я смущен тем, как вступает в игру каталог синхронизации конфигурации (тот, у которого UUID сайта, который по умолчанию сохраняется в каталоге файлов). В локальной среде разработки в тестовой ветке я переместил эту папку, контролировал ее версию и изменил settings.php, чтобы указать на это новое место. Я заметил, что когда я вношу какие-либо изменения (скажем, представление), в папке синхронизации конфигурации не отображаются изменения. Если я перейду на экран синхронизации конфигурации, я увижу это сообщение:

Следующие элементы в вашей активной конфигурации имеют изменения с момента последнего импорта, которые могут быть потеряны при следующем импорте.
views.view.test_config_view

Я очень смущен, какова цель папки синхронизации конфигурации. Разве он не должен как-то обновляться при внесении изменений на сайт Drupal? Пробовал очищать кеш и все. Я подумал, что это будет правильный способ синхронизации изменений с несколькими людьми, работающими над сайтом (вместо использования экрана импорта/экспорта и создания файлов tar). Я также не понимаю, почему это заставляет меня синхронизироваться с последним выполненным импортом, даже если у меня есть более свежие изменения. Спасибо всем, кто может лучше объяснить это мне.

leymannx avatar
флаг ne
В Drupal конфигурация — это набор настроек администратора, которые определяют, как функционирует сайт, в отличие от содержимого сайта. Конфигурация обычно включает в себя такие вещи, как имя сайта, типы контента и поля, словари таксономии, представления и так далее. https://www.drupal.org/docs/configuration-management
Kevin avatar
флаг in
Вы должны экспортировать новые изменения. Это не автоматически.
leymannx avatar
флаг ne
Допустим, вы создали копию работающего сайта на своем компьютере. Код, база данных, локальный сайт работает. Теперь на локальном сайте вы разрабатываете новую функцию. Например, создать новый тип контента с большим количеством полей. Как вы теперь получаете эти изменения на своем действующем сайте? Вы экспортируете свою локальную конфигурацию. А затем снова импортируйте его на свой сайт. Вуаля, новый тип контента с большим количеством полей уже доступен. Это чрезвычайно короткая версия фактического наличия репозитория Git для переноса новых функций с локального на живое. Обычно вы используете Drush для экспорта и импорта конфигурации. Но вы также можете переместить Tarball.
leymannx avatar
флаг ne
Рекомендуется, чтобы у вас был каталог синхронизации конфигурации за пределами корневого веб-сайта. А затем настройте settings.php, чтобы он указывал на новое местоположение.
Jaypan avatar
флаг de
Я написал серию руководств, которые могут помочь вам лучше понять: https://www.morpht.com/blog/drupal-8-configuration-part-1-configuration-api.

Ответить или комментировать

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