Идентификатор UUID сайта в исходном хранилище не соответствует целевому хранилищу
Когда я запускаю drush cim-y на моем промежуточном экземпляре моего сайта, я получаю следующую ошибку:
Исключение Drupal\Core\Config\Configimporter: При проверке синхронизации конфигурации были допущены ошибки. в Drupal\Core\Config\CONFIGIMPORTER->проверка() (строка 728 из/var/www/xeno/docroot/core/lib/Drupal/Core/Config/ConfigImporter.php).
Импорт не удался по следующим причинам: Идентификатор UUID сайта в исходном хранилище не соответствует целевому хранилищу. Сущности существуют изображения типа Абзац и типа абзац. Эти объекты необходимо удалить перед импортом.
Вот что я сделал:
Скопировал базу данных из промежуточной версии и извлек последний код
Побежал
drush cex -y
Зафиксированная конфигурация
Перешел к этапированию и вытащил последний код
Запустил
drush cim -y
и получил ошибку, указанную выше
Когда я запускаю drush cget system.site uuid
на локальном и промежуточном уровне, я получаю тот же uuid, поэтому я не уверен, почему я получаю эту ошибку.
Как я могу исправить ошибку?
4 answers
Вы можете исправить это, изменив UUID вашего локального сайта с помощью drush.
Мне также нужно было запустить сочетание drush entity-updates -y
и установить определенные модули с drush en <module_name> -y
, прежде чем конфигурации будут импортированы в новую свежую базу данных.
Обновление: вам больше не следует использовать drush entity-updates -y
. См. https://www.drupal.org/node/3034742
Традиционно перед импортом конфигурации следует использовать следующее:
drush cset system.site uuid "6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347"
Или с помощью консоли drupal:
$ drupal config:override
Enter configuration name []:
> system.site
Enter the configuration key [uuid]:
> uuid
Enter the configuration value:
> 6ba9bxxx-xxxx-438x-9c8x-e5x7x3d0x347
Более общее решение
Для людей, которым надоело делать это снова и снова. Я наконец-то понял, как это сделать автоматически. Вам нужно будет добавить предварительную команду для конфигурации: импорт с помощью drush, чтобы установить uuid. Читайте все об этом здесь: https://stefvanlooveren.me/blog/fixing-systemsite-uuid-config-import-problem-drupal-8
На самом деле, я использовал развертывание SFTP, и у него не было файла system.site.yml
на моем промежуточном сайте. Я просто перераспределил все файлы, и проблема исчезла.
Для меня:
drush config-set "system.site" uuid etc9c055aetcetc
Подтверждает изменение:
drush cedit system.site
Исправлена ошибка быстрого доступа при импорте конфигурации:
drush ev '\Drupal::entityManager()->getStorage("shortcut_set")->load("default")->delete();'
Вручную отредактировал system.site.yml
, изменив идентификатор UUID на соответствующий.
После этого импорт конфигурации только что, наконец, успешно запустился на моем порту.