RuntimeException: impossibile determinare la classe per il tipo di campo trovato nella configurazione


11

Il mio sito Web ha riscontrato questo errore durante l'aggiornamento da Drupal 8.3.7 a Drupal 8.4.0 e non sono in grado di risolverlo.

Si è verificato un errore imprevisto nel sito Web. Per favore riprova più tardi. RuntimeException: impossibile determinare la classe per il tipo di campo 'webform' trovato nella configurazione 'field.storage.node.webform' in Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords () (riga 157 di core / modules / field / src / FieldStorageConfigStorage. php).


Penso che questo non sia collegato alla versione D8. Probabilmente tutte le versioni segnaleranno lo stesso errore quando si dispone di un campo configurato in un tipo di contenuto in cui non è possibile trovare il codice per il tipo di campo.
4k4,

Risposte:


35

Un modo possibile è che il modulo non sia presente nella base di codice o che sia stato disinstallato in modo errato e che sia ancora presente un campo che utilizza quel modulo mancante.

Prova i seguenti drushcomandi / SQL per rimuovere il campo rotto:

drush sqlq "DELETE FROM cache_config"
drush sqlq "DELETE FROM config WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"
drush sqlq "DELETE FROM config_snapshot  WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"

Avvertenza : non eseguire i comandi sopra sul database master / live. Effettuare un backup prima di apportare eventuali modifiche al database.

Dov'è field.storage.xxx.xxxil tipo di archiviazione del campo segnalato (ad es field.storage.node.webform.).

Se sopra non aiuta, controlla eventuali altri riferimenti:

drush sql-dump --ordered-dump | grep field.storage.xxx.xxx

Alla fine è necessario ricostruire le cache:

drush cr

1
Grazie mille per la soluzione. Sicuramente aiuterà.

1
Questa dovrebbe essere assolutamente la risposta accettata
Mrweiner

Grazie @kenorb per questa ottima risposta. +1
Beto Aveiga,

2

Ho avuto un errore simile con un altro modulo (indirizzo nel mio caso). Potrei risolverlo semplicemente reinstallando il modulo in questione con la console drupal con il seguente comando:

drupal module:install address

E torniamo al lavoro :)


+1 sì, ho trovato che funziona anche.
therobyouknow,

Ho fatto la reinstallazione con composer require drupal/address - come qualcun altro ha fatto qui: drupal.org/project/address/issues/2868049#comment-12044874
therobyouknow
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.