Fuente: https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215
Puede suceder que al desinstalar un módulo el procedimiento no se realice en su totalidad o no exista ningún procedimiento de eliminación presente, por esta razón la base de datos queda "sucia".
Normalmente, el error causado al eliminar un complemento por la fuerza es este:
[error] Drupal\Component\Plugin\Exception\PluginNotFoundException: The "name-of-plugin" entity type does not exist. in Drupal\Core\Entity\EntityTypeManager->getDefinition()
Habilitar la configuración que muestra todos los mensajes de error puede ayudarle a comprender dónde está presente el error y dónde se deben tomar medidas.
Puede activar la habilitación de registro completo en la página admin/config/development/logging aquí. Esta configuración puede ayudarle a determinar si el problema son las configuraciones o el nombre del complemento está codificado en su código.
Ahora abordaremos cómo resolver el problema si está vinculado a configuraciones y para hacerlo tenemos dos formas posibles:
Esta solución probablemente esté entre las más utilizadas si sigues la metodología de lanzamiento estándar recomendada por la comunidad Drupal.
Exporte toda la configuración a través de la interfaz gráfica o con el comando drush config:export. En los archivos recuperados de la exportación, realice una búsqueda de texto completo con el nombre del complemento. Elimine la sección de configuración que está causando el error e importe la configuración con drush config:import
Esta solución es útil para aquellos que, como yo, no tienen la posibilidad de exportar la configuración completa y volver a importarla pero necesitan trabajar "en caliente" en el sitio.
Para encontrar qué configuraciones están causando el error, puede ejecutar esta consulta en la base de datos:
SELECT name FROM config WHERE data LIKE "%name-of-plugin%";
La consulta busca en la tabla de configuración el complemento infractor y devuelve los nombres de las configuraciones que invocan el complemento.
Cuando tengas los nombres de las configuraciones podrás proceder a eliminar el complemento.
Dependiendo del complemento y la configuración errónea, el método de eliminación puede cambiar ligeramente, ahora tomemos en consideración un ejemplo que también puede ser un buen punto de partida para otros casos.
Ex.
Tuve un problema con el complemento filter_image_lazy_load debido a una mala actualización de Drupal 10.
La consulta anterior devolvió estas configuraciones:
filter.format.basic_html filter.format.full_html filter.format.restricted_html
Con el servicio config.factory cargué las configuraciones y verifiqué dónde existe el problema. Luego puedes proceder a eliminar el complemento de esta manera:
$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()
Puedes hacer exactamente lo mismo con drush config:get filter.format.basic_html y drush config:set filter.format.basic_html o de una sola vez con drush config:edit filter.format.basic_html
Después de limpiar las configuraciones, ejecute un drush cache:rebuild y el error debería resolverse.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3