Похоже, что импорт конфигурации для определенных элементов завершился неудачно. Как это исправить?
После синхронизации конфигурации от разработчика к стадии подготовки я бы ожидал, что все изменения будут импортированы, и появится сообщение с сообщением «Нет изменений конфигурации для импорта»
Большинство изменений было импортировано, но у меня осталось шесть элементов, которые, похоже, не удалось импортировать. Или хотя бы не очистить список предметов для импорта.
Не понимаю, почему активная конфигурация не обновляется поэтапно.
Помимо импорта всего, я также безуспешно пытался импортировать каждый элемент отдельно.
Помимо использования пользовательского интерфейса, также попробовал drush cim. Drush подтверждает, что конфигурация была успешно импортирована. Но если я снова запущу drush cim, останутся те же 6 файлов.
Почему кажется, что импорт не выполняется и что мне делать, чтобы это исправить? Моя активная конфигурация как-то испорчена?
Снимок экрана и код, иллюстрирующий проблему.
Через пользовательский интерфейс

Через Друш
[easable]:sync$ drush cim +------------+-----------------------------------------------------+-----------+ | Collection | Config | Operation | +------------+-----------------------------------------------------+-----------+ | | block.block.schoolpwa_subtheme_bottommenu | Update | | | block.block.schoolpwa_subtheme_mainnavigation | Update | | | block.block.mainmenu2 | Update | | | block.block.websiteswitcher | Update | | | core.entity_view_display.node.page.default | Update | | | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update | +------------+-----------------------------------------------------+-----------+ Import the listed configuration changes? (yes/no) [yes]: > [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_bottommenu. [notice] Synchronized configuration: update block.block.schoolpwa_subtheme_mainnavigation. [notice] Synchronized configuration: update block.block.mainmenu2. [notice] Synchronized configuration: update block.block.websiteswitcher. [notice] Synchronized configuration: update core.entity_view_display.node.page.default. [notice] Synchronized configuration: update media_bulk_upload.media_bulk_config.pdf_bulk_upload. [notice] Finalizing configuration synchronization. [success] The configuration was imported successfully. [easable]:sync$ drush cim
+------------+-----------------------------------------------------+-----------+
| Collection | Config | Operation |
+------------+-----------------------------------------------------+-----------+
| | block.block.schoolpwa_subtheme_bottommenu | Update |
| | block.block.schoolpwa_subtheme_mainnavigation | Update |
| | block.block.mainmenu2 | Update |
| | block.block.websiteswitcher | Update |
| | core.entity_view_display.node.page.default | Update |
| | media_bulk_upload.media_bulk_config.pdf_bulk_upload | Update |
+------------+-----------------------------------------------------+-----------+
Import the listed configuration changes? (yes/no) [yes]:
>
Ответы
Я обнаружил, что это связано с тем, что конфигурация в вашем каталоге синхронизации не совсем законна. Я предполагаю, что это проблема и для вашего разработчика, и для локальной среды, а не только для постановки.
Я обнаружил, что причиной этой проблемы обычно является одна из двух причин:
1. Файлы конфигурации были изменены вручную, и конфигурация в файле невозможна.
Например, глядя на ваш pastebin, изменение для core.entity_view_display.node.page.default.yml заключается в удалении созданного поля из списка скрытых полей на этом дисплее. Однако нет конфигурации того, как должно отображаться поле. Поле нельзя не отображать и не скрывать. Чтобы сохранить целостность конфигурации, система по умолчанию делает поле скрытым, если его нет ни в одном месте.
2. Обновления базы данных были запущены, обновления, которые изменяют конфигурацию, но конфигурация не была экспортирована в среду разработки после обновления.
Например, глядя на ваш pastebin, похоже, что были добавлены некоторые новые параметры конфигурации (с соответствующими значениями по умолчанию). Также похоже, что модуль изменился с работы с true
и false
на 1
и 0
.
Чтобы решить эту проблему:
Сначала перейдите в свою основную среду разработки. Затем получите последнюю базу данных с записями, очистите кеш и разверните (обновите базу данных, затем импортируйте свою конфигурацию). Результат должен быть тем же, что вы видите при постановке, т.е. некоторая конфигурация будет казаться не полностью синхронизированной. Это ожидаемо (по причинам, описанным выше). Затем повторно экспортируйте конфигурацию, зафиксируйте и повторно разверните.
Чтобы избежать этой проблемы в будущем:
- Не манипулируйте файлами конфигурации напрямую. Если вы это сделаете, протестируйте конфигурацию локально, чтобы убедиться, что вы правильно ее поняли (в том числе после разрешения конфликтов слияния в файлах конфигурации).
- Всегда экспортируйте конфигурацию после обновления базы данных. Иногда обновления меняют конфигурацию.