Рейтинг:3

Почему не удается выполнить установку из существующей конфигурации?

флаг cn

Я изо всех сил пытаюсь установить сайт drupal из существующей конфигурации. Вот два подхода, которые я пробовал:

ВАРИАНТ 1: Импортируйте конфигурацию, изменив UID:

  • драш секс на существующем сайте
  • сайт драша: установить установить новый сайт
  • drush cset system.site uuid 478e7e74-fea3...... установить UUID на новом сайте равным существующему сайту
  • драш цим на новом сайте

РЕЗУЛЬТАТ:

  Импорт не выполнен по следующим причинам:

  Непредвиденная ошибка во время импорта с операцией удаления для taxonomy.vocabulary.tags: попытка создать тело поля, которое не существует на узле типа сущности.
  Непредвиденная ошибка во время импорта с операцией удаления для ярлыка.set.default: попытка создать тело поля, которое не существует на узле типа объекта.
  Непредвиденная ошибка во время импорта с операцией удаления для contact.form.personal: попытка создать тело поля, которое не существует на узле типа объекта.

.... (этих ошибок гораздо больше, но здесь я убрал их для лучшей читабельности)

ВАРИАНТ 2: Предоставьте существующую конфигурацию уже во время установки

сайт drush: установить --existing-config при этом конфигурация с существующего сайта доступна в каталоге конфигурации нового сайта.

РЕЗУЛЬТАТ:

Выбранный профиль имеет реализацию hook_install() и поэтому может
не устанавливаться из конфигурации.
Рейтинг:3
флаг in

Я думаю, что вариант 1 - это скорее хакерский обходной путь, чем рекомендуемый подход. Я бы избегал этого в пользу варианта 2.

Re: вариант 2 не работает, сообщение об ошибке довольно ясное - вы не можете использовать --существующая-конфигурация вариант с профилем, реализующим установочный хук.

От изменить запись, предоставив возможность установки из существующей конфигурации:

Если профиль реализует конфигурацию hook_install(), установка не поддерживается. Это может быть рассмотрено в #2982052: Разрешить установочный хук в профилях, устанавливаемых из конфигурации.. Возможные обходные пути на данный момент — либо изменить профиль установки на минимальный, либо следовать варианту 2 и создать новый профиль, который не реализует хук.

Drupal 8: установка сайта из существующей конфигурации рассказывается, как изменить вашу установку, чтобы использовать минимальный профиль вместо вашего текущего профиля. Спойлер: нужно просто сделать два обновления на core.extension.yml файл в вашем каталоге конфигурации:

  1. Изменить профиль значение ключа для минимальный
  2. Под модули ключ, замените ключ вашего существующего профиля на минимальный. (Профили обычно находятся в конце списка.)
Extect avatar
флаг cn
Большое спасибо! Это, по крайней мере, позволяет мне установить из существующей конфигурации. Однако я должен изменить core.extension.yml перед каждым запуском drush cim, чтобы заставить его работать. Есть ли способ обойти это?
sonfd avatar
флаг in
Это не должно быть необходимо. Вы сможете установить сайт с измененным `core.extension.yml` и экспортировать свою конфигурацию (`drush cex`) после завершения установки. После этого у вас должен быть обычный сайт, не нуждающийся в специальной обработке.
Extect avatar
флаг cn
У меня есть сайт разработки (со стандартным профилем установки), который я хочу установить в продукте (что возможно, изменив core.extension.yml благодаря вашей подсказке). Теперь, когда я хочу изменить конфигурацию в dev и отправить его в prod, я бы сделал `drush cex` в dev и `drush cim` в prod, но это не сработает без изменения `core.extension. yml` еще раз. Что я делаю неправильно?
sonfd avatar
флаг in
После того, как вы выполните новую установку на prod, вам нужно вернуть эту базу данных (и конфигурацию) обратно в ваш экземпляр dev. Похоже, вы пытаетесь выполнить две отдельные новые установки (одну на dev, а вторую на prod), а затем развернуть код между ними, как если бы они были одним и тем же сайтом. AFAIK, это не поддерживается.
Extect avatar
флаг cn
Хорошо. Спасибо! Я просто хотел избавиться от всего своего тестового контента в dev, выполнив новую установку для prod. Наверное, моя ошибка была в том, что я не синхронизировался сразу с двумя.

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

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