Источник: https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215
Может случиться так, что при удалении модуля процедура не выполняется полностью или процедура удаления отсутствует, поэтому база данных остается «грязной».
Обычно ошибка, вызванная принудительным удалением плагина, выглядит следующим образом:
[error] Drupal\Component\Plugin\Exception\PluginNotFoundException: The "name-of-plugin" entity type does not exist. in Drupal\Core\Entity\EntityTypeManager->getDefinition()
Включение конфигурации, отображающей все сообщения об ошибках, поможет вам понять, где возникла ошибка и где необходимо предпринять действия.
Вы можете активировать полное включение журнала на странице admin/config/development/logging здесь. Эта конфигурация может помочь вам выяснить, заключается ли проблема в конфигурациях или имя плагина жестко закодировано в вашем коде.
Теперь мы рассмотрим, как решить проблему, если она связана с конфигурациями, и для этого у нас есть два возможных способа:
Это решение, скорее всего, является одним из наиболее часто используемых, если вы следуете стандартной методологии выпуска, рекомендованной сообществом Drupal.
Экспортируйте всю конфигурацию через графический интерфейс или с помощью команды drush config:export. В файлах, восстановленных в результате экспорта, выполните полнотекстовый поиск по названию плагина. Удалите раздел конфигурации, вызывающий ошибку, и импортируйте конфигурацию с помощью drush config:import
Это решение пригодится тем, у кого, как и у меня, нет возможности экспортировать всю конфигурацию и повторно импортировать ее, а работать над сайтом нужно «по горячему».
Чтобы узнать, какие конфигурации вызывают ошибку, вы можете запустить этот запрос к базе данных:
SELECT name FROM config WHERE data LIKE "%name-of-plugin%";
Запрос выполняет поиск в таблице конфигурации плагина-нарушителя и возвращает имена конфигураций, вызывающих плагин.
Когда у вас есть имена конфигураций, вы можете приступить к удалению плагина.
В зависимости от плагина и ошибочной конфигурации способ удаления может незначительно меняться, теперь давайте рассмотрим пример, который также может стать хорошей отправной точкой для других случаев.
Бывший.
У меня возникла проблема с плагином filter_image_lazy_load из-за плохого обновления Drupal 10.
Предыдущий запрос вернул следующие конфигурации:
filter.format.basic_html filter.format.full_html filter.format.restricted_html
С помощью службы config.factory я загрузил конфигурации и проверил, где существует проблема. Затем вы можете приступить к удалению плагина следующим образом:
$configName = 'filter.format.basic_html'; $config = \Drupal::service('config.factory')->getEditable($configName); $filters = $config->get('filters'); unset($filters['filter_image_lazy_load']); $config->set('filters', $filters)->save()
Вы можете сделать то же самое с помощью конфигурации drush: get filter.format.basic_html и конфигурации drush: set filter.format.basic_html или одним махом с помощью конфигурации drush: отредактировать filter.format.basic_html
После очистки конфигураций запустите drushcache:rebuild и ошибка должна быть устранена!
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3