RuntimeException: no se puede determinar la clase para el tipo de campo encontrado en la configuración


11

Mi sitio web recibió este error al actualizar Drupal 8.3.7 a Drupal 8.4.0 y no puedo resolverlo.

El sitio web encontró un error inesperado. Por favor, inténtelo de nuevo más tarde. RuntimeException: no se puede determinar la clase para el tipo de campo 'webform' que se encuentra en la configuración 'field.storage.node.webform' en Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords () (línea 157 de core / modules / field / src / FieldStorageConfigStorage. php).


Creo que esto no está conectado a la versión D8. Probablemente todas las versiones informarán el mismo error cuando tenga un campo configurado en un tipo de contenido donde no se puede encontrar el código para el tipo de campo.
4k4

Respuestas:


35

Una forma posible es que su módulo no se encuentre en la base de código o que se haya desinstalado incorrectamente y que todavía tenga un campo que esté usando ese módulo que falta.

Pruebe los siguientes drushcomandos / SQL para eliminar el campo roto:

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

Advertencia : No ejecute los comandos anteriores en la base de datos master / live. Haga una copia de seguridad antes de realizar cambios en la base de datos.

¿Dónde field.storage.xxx.xxxestá su tipo de almacenamiento de campo informado (por ejemplo field.storage.node.webform)?

Si lo anterior no ayuda, verifique cualquier otra referencia al:

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

Al final necesita reconstruir sus cachés:

drush cr

1
Muchas gracias por la solución. Seguramente va a ayudar.

1
Esta debería ser la respuesta aceptada
Mrweiner

Gracias @kenorb por esta gran respuesta. +1
Beto Aveiga

2

Tuve un error similar con otro módulo (dirección en mi caso). Podría solucionarlo simplemente reinstalando el módulo en cuestión con la consola drupal con el siguiente comando:

drupal module:install address

Y de vuelta al negocio :)


+1 sí, encontré que esto también funciona.
therobyouknow

Hice la reinstalación con composer require drupal/address , como lo hizo otra persona aquí: drupal.org/project/address/issues/2868049#comment-12044874
therobyouknow
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.