Como poner en mantenimiento un portal Drupal usando Drush

Drupal usando Drush
Solucionex
08
Ago 23

Drupal dispone de serie de un "modo mantenimiento" que, al activarse, impide que los usuarios puedan acceder al portal. De este modo podemos evitar conflictos cuando estamos haciendo despliegues de nuevo código o funcionalidad, o bien cuando está habiendo algún problema grave que nos aconseje evitar que los usuarios puedan, por ejemplo, editar contenidos.

Este modo mantenimiento puede "saltarse" si el usuario logueado tiene el permiso "Usar el sitio en modo mantenimiento". Si el rol asignado dispone de este permiso, dicho usuario sí que podrá loguearse y acceder a la parte privada del portal.

El modo mantenimiento se puede activar desde la interfaz de Drupal en el menú "Configuración" -> "Desarrollo" -> "Modo mantenimiento". En esa sección, además de activarlo y desactivarlo, se puede modificar el texto que verá el usuario cuando trate de acceder al portal.

Aclarado todo lo anterior, lo que queríamos explicaros en este post es cómo activar este modo mantenimiento desde Drush para poder hacerlo desde el terminal. Esto puede ser útil en diversas situaciones:

  • Cuando queramos añadir en un script de despliegue que el portal se ponga en mantenimiento mientras se hacen los cambios y que luego se desactive al finalizar.
  • Cuando no es posible acceder al portal desde la interfaz por algún tipo de error grave que nos impide loguearnos  (por ejemplo si el login está integrado con algún tipo de directorio LDAP externo o similar).
  • O simplemente cuando queramos hacerlo rápido si estamos acostumbrados a usar el terminal.

Sea cual sea el motivo, activar y desactivar el modo mantenimiento es muy sencillo con drush. Basta con ejecutar los siguientes comandos:

  • Para activarlo: drush state:set system.maintenance_mode 1
  • Para desactivarlo: drush state:set system.maintenance_mode 0 

Pero hay incluso un modo más sencillo usando el comando de drush maint

  • Para activarlo: drush maint:set 1
  • Para desactivarlo: drush maint:set 0

Y todavía más corto haciendo uso del alias de este comando maint:

  • Para activarlo: drush mset 1
  • Para desactivarlo: drush mset 0

Espero que os resulte útil.