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?
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?
Risposte:
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. )
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.
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 cim
comando. Questo disinstallerà il modulo.
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 en
probabilmente non è essenziale