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?
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. )
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.
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.
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