RuntimeException: Klasse für Feldtyp in der Konfiguration kann nicht ermittelt werden


11

Meine Website hat diesen Fehler beim Aktualisieren von Drupal 8.3.7 auf Drupal 8.4.0 erhalten, und ich kann ihn nicht beheben.

Auf der Website ist ein unerwarteter Fehler aufgetreten. Bitte versuchen Sie es später noch einmal. RuntimeException: Die Klasse für den Feldtyp 'webform' in der Konfiguration 'field.storage.node.webform' in Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords () (Zeile 157 von core / modules / field / src / FieldStorageConfigStorage kann nicht ermittelt werden. php).


Ich denke, das ist nicht mit der D8-Version verbunden. Wahrscheinlich melden alle Versionen den gleichen Fehler, wenn Sie ein Feld in einem Inhaltstyp konfiguriert haben, in dem der Code für den Feldtyp nicht gefunden werden kann.
4k4

Antworten:


34

Eine Möglichkeit besteht darin, dass Ihr Modul in der Codebasis fehlt oder nicht ordnungsgemäß deinstalliert wurde und Sie immer noch ein Feld haben, in dem dieses fehlende Modul verwendet wird.

Versuchen Sie die folgenden drush/ SQL-Befehle, um das fehlerhafte Feld zu entfernen:

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%'"

Warnung : Führen Sie die obigen Befehle nicht in der Master / Live-Datenbank aus. Erstellen Sie ein Backup, bevor Sie Datenbankänderungen vornehmen.

Wo field.storage.xxx.xxxist Ihr gemeldeter Feldspeichertyp (z field.storage.node.webform. B. )?

Wenn dies nicht hilft, suchen Sie nach weiteren Referenzen von:

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

Am Ende müssen Sie Ihre Caches neu erstellen:

drush cr

1
Vielen Dank für die Lösung. Es wird sicherlich helfen.

1
Dies sollte unbedingt die akzeptierte Antwort sein
Mrweiner

Danke @kenorb für diese tolle Antwort. +1
Beto Aveiga

2

Ich hatte einen ähnlichen Fehler mit einem anderen Modul (Adresse in meinem Fall). Ich könnte es beheben, indem ich einfach das betreffende Modul mit der Drupal-Konsole mit dem folgenden Befehl neu installiere:

drupal module:install address

Und zurück zum Geschäft :)


+1 Ja, ich fand, dass dies auch funktioniert.
wissen,

Ich habe die Neuinstallation durchgeführt mit composer require drupal/address - wie jemand anderes hier: drupal.org/project/address/issues/2868049#comment-12044874
therobyouknow
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.