Синхронизация локальных и рабочих сайтов на Drupal 8/9

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

Поковырявшись в памяти вспомнил, что у друпала появилась своя родная штука по синхронизации. Там, же все просто. На доноре выполняем drush config:export или drush cex, копируем файлы на сервер и там выполняем drush config:import или drush cim. И все должно работать. Но хер там не ночевал! Оно начинает выдавать ошибку, говорит uuid разный. Ну думаю, ладно может дело в драше. Пробую через веб морду. Таже ошибка.

Решил погуглить. И вот на drupal.ru встречаю самый сука вредный совет из того, что мог найти. Говорится там примерно следующее: «А чтоб не было этой ошибки вы это экспортируйте/импортируйте базу данных». Причем это признано лучшим ответом. Конечно так можно сделать, но лучше так делать на самом старте, когда локальная копия еще пуста и не содержит всяких тестовых данных. Ну а иначе вам на проде придется это удалить.

Покопавшись еще чуть чуть, я нашел лучшее решение. Раз проблема в том, что на сайтах разные uuid надо их сделать одинаковыми.

Для начала на любом из сайтов выполняем:

1
drush cget system.site uuid

Увидим в ответ примерно следующее:

1
'system.site:uuid': 03151e31-4801-412e-97b7-354d6sd1033f

Это uuid нашего сайта, теперь на втором сайте устанавливаем точно такой же:

1
drush cset system.site uuid 03151e31-4801-412e-97b7-354d6sd1033f

ВСЕ! Теперь все будет синхронизироваться без каких либо нареканий. Может конечно еще возникнуть проблема с «Ярлыками», но тогда вы просто удалите их и там и там.

Photo by Joshua Aragon on Unsplash.

Чуть не забыл. Вы можете почитать меня в твиттере или телеграме, посмотреть мои фотографии в инстаграме, подружиться со мной в PSN, позлить меня на твиче пока я играю или посмотреть в записи. А самые лучшие человеки могут меня поддержать деньгой.