Я не как « клонированием решений веб - сайта» , который подразумевает демпинг базу данных и импортирующих эту свалку в другой среде. Это не похоже на реальный способ развертывания нескольких экземпляров одного и того же веб-сайта (staging / prod / dev / etc).
В D7 мы обычно использовали пользовательские профили и использовали drush для установки веб-сайтов из этих профилей (и, возможно, использовали функции для последующей синхронизации сайтов). Это дало нам новые установки, отсутствие тестового контента, но обмен важными настройками. Например, обычная синхронизация контента выполняется с помощью migrate.
Я пытался управлять несколькими экземплярами D8, использующими одни и те же профили установки. Где конечная цель будет делиться и синхронизировать конфигурации сайта. И каждая установка имеет свой сайт UUID. У меня нет успеха в применении system.site uuid
переменной config во время установки (конечно, я могу изменить значение позже, но мне кажется, что это слишком поздно, и все объекты уже созданы с разными UUID, что делает первую синхронизацию кошмаром где некоторое содержимое по умолчанию должно быть удалено, или язык по умолчанию нарушает синхронизацию, потому что его нельзя удалить, и т. д.).
Чтобы применить этот UUID, я попытался использовать сгенерированный файл settings.php со $config['system.site']['uuid']
значением внутри, большой сбой (настройка была полностью проигнорирована, даже после установки сайта).
Я также рассмотрел профиль установщика конфигурации , который мне не совсем понятен, особенно способ смешать это решение с другим профилем установки.
Итак, вопрос в том, каков наилучший способ развертывания свежих сайтов из профиля установки:
- без «клонирования веб-сайтов» и манипулирования дампами SQL при создании сайтов (например , вопрос о клонированных сайтах ).
- со свежей чистой установкой (без разработчиков контента для мусора), используя экспортированную конфигурацию и код только
- который может управлять установками по умолчанию и последующей синхронизацией
источник
Другой вариант:
источник
Основываясь на подсказке @Ivan Jaros, вы можете установить определенные параметры конфигурации после установки профиля. Очевидно, это работает только при установке, а не после того, как сайт уже установлен.
В файле .install вашего профиля вы можете добавить настройки конфигурации по умолчанию в
hook_install()
:Я попробовал это локально, и это работает. Мне удалось вытащить конфигурацию с другого сайта на только что установленный локальный сайт, используя приведенный выше код (с соответствующим набором UUID), без
drush cset
изменения UUID сайта.Предположительно, вы можете установить свой UUID, который будет взят из файла в вашей среде, или из переменной среды, или службы, и, таким образом, они будут одинаковыми на любом сайте с установленным профилем.
Я надеялся сделать то же самое,
settings.php
ноConfigFactory
класс на данный момент недоступен, и, как вы указали в своем вопросе, установка его через$config
in неsettings.php
имеет никакого эффекта.источник