web-dev-qa-db-fra.com

Comment résoudre l'erreur "Le module suivant est absent du système de fichiers"?

J'obtiens l'erreur suivante sur un site Drupal 8.

Le module suivant est absent du système de fichiers

Il semble qu'un module personnalisé ait été installé et supprimé sans le désinstaller.

Comment puis-je corriger cette erreur?

9
Kevin

Si vous avez la console Drupal), un moyen rapide de résoudre ce problème consiste à générer un module avec le même nom de machine, puis à le désinstaller.

$ drupal generate:module

Tapez ensuite le nom de l'ordinateur à l'invite appropriée et acceptez les valeurs par défaut pour tout le reste.

$ drush pm-uninstall

Ensuite, vous pouvez supprimer le module nouvellement généré du système de fichiers et continuer votre journée.

(NB vous pouvez avoir besoin de conserver ce module généré, sinon l'erreur reviendra. Dans ce cas, si vous devez installer un module contrib avec le même nom, supprimez le module généré après avoir ajouté le module contrib. Ensuite, videz le cache. )

10
naomi

En supposant que vous avez supprimé un module personnalisé sans importance qui ne nécessite aucune routine de désinstallation pour être déclenché, vous pouvez utiliser la commande Drush suivante.

  • Drupal 7

    drush sql-query "DELETE from system where type = 'module' AND name = 'MYMODULE';"
    
  • Drupal 8

    drush sql-query "DELETE FROM key_value WHERE collection='system.schema' AND name='MYMODULE';"
    

Voir Comment réparer les messages d'avertissement "Le module suivant est absent du système de fichiers ..." pour plus d'informations et d'alternatives.

10
leymannx

Maintenant, avec le module de gestion de la configuration, la configuration des modules est stockée dans le fichier core.extension.yml.

Allez pour éditer le fichier et essayez de trouver le module manquant dans le système de fichiers puis supprimez la ligne et importez la config (drush cim).

Si cela ne fonctionne pas mais que vous avez trouvé le module, créez à nouveau le module (juste le dossier et un fichier .info.yml valide) et exécutez à nouveau le drush cim commande. Cela désinstallera le module.

3
Adrian Cid Almaguer

La façon dont je l'ai corrigé était en utilisant drush et composer. Obtenez le module avec require, installez et désinstallez avec drush puis supprimez avec composer.

composer require drupal/missing_module
drush en missing_module
drush pmu missing_module
composer remove drupal/missing_module

! L'étape avec drush en n'est probablement pas nécessaire

0
Bo rislav