Internet, Informática y Tecnología

Solucionar errores al eliminar Redis de Drupal

Drupal Redis logos

Drupal Redis logo

Hace tiempo que dejé de usar Redis en mis sitios con Drupal 9, y como es ya costumbre errores por todos lados al actualizar módulos. Esto no es tanto culpa de Drupal, si no de lo complicado que es configurar algunos módulos como el de Redis. En mi instalación de desarrollo actualicé algunos módulos y por arte de magia me encontré con el siguiente error:

...Service 'cache_tags.invalidator.checksum' for consumer 'cache_tags.invalidator' does not implement [error] Drupal\Core\Cache\CacheTagsInvalidatorInterface...

También me aparecía:

...Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException: The service "lock.persistent" has a dependency on a non-existent service "redis.lock.factory". in Symfony\Component\DependencyInjection\Compiler\CheckExceptionOnInvalidReferenceBehaviorPass->processValue()...

Como siempre culpe el uso excesivo de Drupal con la base de datos e intente buscar cualquier referencia de estos elementos en la base de datos y no encontré nada.

Los pasos para eliminar correctamente Redis de Drupal y no dejar una página inservible:

  1. Desinstalar limpiamente el módulo Redis desde el panel de administración o con Drush.
  2. Eliminar o comentar todos los cambios referentes a Redis hechos en el archivo "settings.php", por ejemplo la línea $settings['cache']['default'] = 'cache.backend.redis';.
  3. Eliminar todo el bloque que necesita Redis en el archivo "services.yml", "development.services.local.yml" o cualquiera que sea el nombre que tengamos en la sección "Load services definition file." de "settings.php", por ejemplo la línea con cache_tags.invalidator.checksum.
  4. Limpiamos la cache completa del sitio.
  5. Eliminamos los archivos con composer remove o directamente si lo instalamos manualmente.

El error que cometí al eliminarlo fue dejar las configuraciones en el archivo "services.yml". En cualquier otro caso la mayor parte del tiempo los errores se solucionan vaciando todas las tablas de la base de datos que empiezan con cache_.

Categorías

Contenido relacionado