"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Drupal : Supprimer un plugin fantôme de la base de données

Drupal : Supprimer un plugin fantôme de la base de données

Publié le 2024-08-21
Parcourir:358

Drupal: Rimuovere un plugin fantasma dal database

Source : https://drupal.stackexchange.com/questions/315921/removing-phantom-plugin-from-database/320215#320215

Il peut arriver que lorsque vous désinstallez un module, la procédure ne soit pas entièrement effectuée ou qu'aucune procédure de suppression ne soit présente, pour cette raison la base de données reste "sale".
Normalement, l'erreur provoquée par la suppression forcée d'un plugin est la suivante :

[error]  Drupal\Component\Plugin\Exception\PluginNotFoundException:
         The "name-of-plugin" entity type does not exist.
         in Drupal\Core\Entity\EntityTypeManager->getDefinition()

L'activation de la configuration qui affiche tous les messages d'erreur peut vous aider à comprendre où l'erreur est présente et où des mesures doivent être prises.
Vous pouvez activer l'activation complète des journaux sur la page admin/config/development/logging ici. Cette configuration peut vous aider à déterminer si le problème vient de la configuration ou si le nom du plugin est codé en dur dans votre code.

Nous allons maintenant aborder comment résoudre le problème s'il est lié aux configurations et pour ce faire, nous avons deux manières possibles :

  • Exporter l'intégralité de la configuration et la réimporter après avoir supprimé les références du plugin
  • Agir directement sur les configurations présentes dans la base de données et supprimer le plugin

Exporter toute la configuration et la réimporter

Cette solution est probablement parmi les plus utilisées si vous suivez la méthodologie de publication standard recommandée par la communauté Drupal.
Exportez l'intégralité de la configuration via l'interface graphique ou avec la commande drush config:export. Dans les fichiers récupérés de l'export, effectuez une recherche en texte intégral avec le nom du plugin. Supprimez la section de configuration à l'origine de l'erreur et importez la configuration avec drush config:import

En agissant directement sur les configurations présentes dans la db et en supprimant le plugin

Cette solution est utile pour ceux qui, comme moi, n'ont pas la possibilité d'exporter toute la configuration et de la réimporter mais ont besoin de travailler "à chaud" sur le site.
Pour trouver quelles configurations sont à l'origine de l'erreur, vous pouvez exécuter cette requête sur la base de données :

SELECT name FROM config WHERE data LIKE "%name-of-plugin%";

La requête recherche dans la table de configuration le plugin incriminé et renvoie les noms des configurations qui appellent le plugin.

Lorsque vous avez les noms des configurations, vous pouvez procéder à la suppression du plugin.
En fonction du plugin et de la configuration en erreur, la méthode de suppression peut légèrement changer, prenons maintenant en considération un exemple qui peut également être un bon point de départ pour d'autres cas.

Ex.
J'ai eu un problème avec le plugin filter_image_lazy_load dû à une mauvaise mise à jour Drupal 10.
La requête précédente a renvoyé ces configurations :

filter.format.basic_html
filter.format.full_html
filter.format.restricted_html

Avec le service config.factory, j'ai chargé les configurations et vérifié où le problème existe. Ensuite, vous pouvez procéder à la suppression du plugin comme ceci :

$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()

Vous pouvez faire exactement la même chose avec drush config:get filter.format.basic_html et drush config:set filter.format.basic_html ou d'un seul coup avec drush config:edit filter.format.basic_html

Après avoir nettoyé les configurations, exécutez un drush cache:rebuild et l'erreur devrait être résolue !

Déclaration de sortie Cet article est reproduit sur : https://dev.to/mcale/drupal-rimuovere-un-plugin-fantasma-dal-database-9pj?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3