Come risolvere l'errore "Il seguente modulo non è presente nel file system"?


9

Ricevo il seguente errore in un sito Drupal 8.

Il seguente modulo non è presente nel file system

Sembra che un modulo personalizzato sia stato installato ed eliminato senza disinstallarlo.

Come posso correggere questo errore?


Stai utilizzando la gestione della configurazione nel sito?
Adrian Cid Almaguer,

Sì, lo sto usando
Kevin,

Qualche anticipo con il problema? Voglio sapere alla fine come risolvere il problema, questo può arrivare anche a me in qualsiasi progetto.
Adrian Cid Almaguer,

In Drupal 8.7.3 sto ottenendo "il seguente file non è presente nel file system: php in drupal_get_filename ()" ma quando provo a installare il modulo php ricevo un errore su di esso già esistente nel core. L'errore mi impedisce di disinstallare nulla. Ieri ho aggiornato a 8.7.3 e oggi a 8.5.3 e non riesco a scuotere l'errore. La cache è stata cancellata ogni volta e tutti i moduli che conosco sono stati ripristinati. Vedo note su Drush ma come installarlo su 8.7.3?
WilliamK,

Risposte:


11

Se hai Drupal Console, un modo rapido per risolvere questo problema è generare un modulo con lo stesso nome di macchina, quindi disinstallarlo.

$ drupal generate:module

Quindi digitare il nome della macchina al prompt appropriato e accetta le impostazioni predefinite per tutto il resto.

$ drush pm-uninstall

Quindi è possibile eliminare il modulo appena generato dal file system e continuare la giornata.

(NB potresti trovare la necessità di mantenere quel modulo generato, altrimenti l'errore ritornerà. In tal caso, se devi installare un modulo contrib con lo stesso nome, rimuovi il modulo generato dopo aver aggiunto il modulo contrib. Quindi svuota la cache. )


2
Questa era l'opzione più semplice dopo che la query SQL sopra non funzionava.
Chris Charlton,

Mi ha aiutato a risolvere il mio errore per il modulo non trovato.
Akshay Sawant,

Se qualcuno ha bisogno di aiuto per installare Drupal Console, ho trovato utile questa pagina . Ricorda, ti consigliamo di installare il Drupal Console Launcher a livello globale e la Drupal Console localmente (nella radice del progetto dell'installazione di Drupal).
Doomd

10

Supponendo di aver eliminato un modulo personalizzato non importante che non necessita di alcuna routine di disinstallazione per essere attivato, è possibile utilizzare il seguente comando Drush.

  • 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';"

Vedere Come correggere i messaggi di avviso "Il seguente modulo non è presente nel file system ..." per ulteriori informazioni e alternative.


1
Ho provato alcune volte e questo per D8 non funziona almeno per d8.7. Consiglierei la soluzione seguente con la generazione del modulo fittizio e quindi l'installazione.
Marko Blazekovic il

3

Ora con il modulo Gestione della configurazione la configurazione dei moduli è memorizzata nel file core.extension.yml.

Vai a modificare il file e prova a trovare il modulo mancante dal filesystem, quindi elimina la riga e importa config ( drush cim).

Se non funziona ma hai trovato il modulo, crea nuovamente il modulo (solo la cartella e un file .info.yml valido) ed esegui nuovamente il drush cimcomando. Questo disinstallerà il modulo.


4
Funziona, ma il modo corretto è ripristinare il modulo e disinstallarlo. Se quel modulo fornisce schemi, configurazioni o simili, rimarrà nel sistema e dovrai ripulirlo manualmente altrimenti.
Berdir,

1
@Berdir se non riesci a trovare il modulo personalizzato, possiamo fare un'altra cosa?
Adrian Cid Almaguer,

Non proprio, quindi è necessario farlo manualmente come suggerito sopra con drush cedit o import / export nel file core.extension.
Berdir,

0

Il modo in cui l'ho risolto era usando drush e compositore. Ottieni il modulo con bisogno, installa e disinstalla con Drush, quindi rimuovi con Composer.

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

! Il passo con drush enprobabilmente non è essenziale

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.