Drush en Drupal: guía detallada para dominar la línea de comandos

Por Nacho Morato, 30 Abril, 2025

Si administras, desarrollas o gestionas un sitio web con Drupal, habrás oído hablar de Drush. Esta potente herramienta de línea de comandos ha transformado la manera en que los profesionales interactúan y gestionan sus proyectos Drupal, ahorrando tiempo y eliminando decenas de pasos repetitivos en el día a día.

En este artículo vas a descubrir qué es Drush, para qué sirve en Drupal y cómo puedes aprovechar todas sus ventajas. Repasaremos desde su instalación, comandos fundamentales, casos de uso avanzado y soluciones a problemas habituales, para que puedas sacarle el máximo partido y optimizar tareas rutinarias y complejas. Si quieres convertirte en un pro gestionando tu web con Drupal, sigue leyendo porque te lo explicamos al detalle y sin rodeos.

¿Qué es Drush y por qué es tan importante para Drupal?

Drush (de Drupal Shell) es una utilidad de línea de comandos, escrita en PHP, diseñada exclusivamente para facilitar la administración y el desarrollo de sitios web construidos con Drupal. Funciona tanto como interfaz directa para realizar tareas cotidianas —que suelen requerir múltiples clics en la interfaz gráfica—, como herramienta esencial para la automatización de procesos, integración en scripts o flujos de trabajo de despliegue.

La principal ventaja de Drush es la agilidad y eficiencia que aporta tanto a administradores de sistemas, desarrolladores como usuarios avanzados. Permite, por ejemplo, activar o desactivar módulos, limpiar la caché, actualizar la base de datos, exportar o importar configuraciones y mucho más, todo ello con un simple comando en la terminal.

Su uso se ha convertido en un estándar dentro de la comunidad Drupal por su capacidad para ahorrar tiempo y reducir errores manuales. Además, Drush se integra sin problemas en despliegues con CI/CD, operaciones diarias y tareas de mantenimiento, y es una pieza clave para cualquier persona que quiera profesionalizar la gestión de proyectos Drupal.

¿Para quién es Drush?

  • Desarrolladores: Si programar es tu día a día y personalizas módulos, generas código, gestionas despliegues o necesitas automatizar procesos, Drush será tu mejor aliado.
  • Administradores de sistemas: Si te encargas del mantenimiento, copias de seguridad, optimización de bases de datos o despliegues, Drush te permite realizar estas operaciones de forma mucho más rápida y segura.
  • Usuarios avanzados: Aquellos que, sin ser necesariamente programadores, se sienten cómodos en el terminal y quieren ganar tiempo y control sobre la gestión de Drupal.

Ventajas clave de utilizar Drush en Drupal

  • Agilidad y eficiencia en la administración: Olvídate de recorrer numerosos menús y pestañas. Con Drush, tareas como limpiar la caché, gestionar usuarios o comprobar el estado del sistema se hacen en segundos y de forma centralizada.
  • Automatización de tareas repetitivas: Gracias a los scripts y comandos personalizables, puedes automatizar desde actualizaciones hasta copias de seguridad, reduciendo riesgos y mejorando la fiabilidad de los procesos.
  • Gestión avanzada de la configuración: Exportar e importar configuraciones, sincronizar entornos y mantener la coherencia entre desarrollo, staging y producción resulta mucho más sencillo y seguro con Drush.
  • Actualizaciones seguras y rápidas: Actualizar módulos, temas o el core de Drupal puede ser un quebradero de cabeza. Con Drush, estos procesos están sistematizados y, además, puedes realizar varias actualizaciones a la vez.
  • Gestión de bases de datos eficiente: Hacer y restaurar copias de seguridad, optimizar o importar/exportar bases de datos está a un comando de distancia, lo cual resulta esencial para entornos de prueba, recuperación o migración.
  • Interacción remota con servidores: Gestiona instalaciones Drupal en servidores remotos utilizando SSH, lo que te permite administrar múltiples sitios de manera centralizada y eficiente.

Compatibilidad de Drush: versiones de Drupal y PHP

Antes de instalar Drush, es importante verificar la compatibilidad entre la versión de Drush, la de Drupal y la de PHP. A continuación, te mostramos una guía rápida de compatibilidades:

Versión de DrushPHP mínimoVersiones compatibles de Drupal
Drush 138.3+Drupal 10.2+
Drush 128.1+Drupal 10/9
Drush 117.4+Drupal 10/9
Drush 85.4.5+Drupal 7

Consejo: Si quieres instalar la última versión de Drush, asegúrate de tener PHP 8.2 o superior y que tu Drupal sea 9.5 o superior.

Instalación de Drush paso a paso

La forma recomendada y más segura de instalar Drush es usando Composer. A continuación te explicamos el proceso estándar que deberías seguir:

  1. Accede a la terminal de tu servidor: Si tienes acceso SSH, conéctate a tu servidor. Si usas un panel de control tipo cPanel, busca la opción Terminal.
  2. Dirígete al directorio raíz de tu proyecto Drupal: Usa el comando cd /ruta-a-tu-sitio-drupal para posicionarte en la carpeta correcta.
  3. Ejecuta la instalación: Instala Drush como dependencia de tu proyecto Drupal con:
    • composer require drush/drush
  4. Confirma la instalación: Comprueba la instalación con:
    • ./vendor/bin/drush --version
  5. Facilita el acceso a Drush: Para poder llamar a Drush desde cualquier lugar dentro del proyecto, añade ./vendor/bin a tu variable de entorno PATH. Así, podrás ejecutar simplemente drush en vez de la ruta completa.

Notas importantes: Si necesitas una versión concreta de Drush, puedes indicarla de forma explícita, por ejemplo: composer require drush/drush:^12

¿Cómo se ejecutan los comandos con Drush?

Una vez instalado Drush, basta con situarse en el directorio raíz de tu proyecto y escribir drush. Si has configurado tu PATH, bastará con lanzar los comandos sin prefijo. Algunos ejemplos:

  • drush en nombre_del_modulo – Activa un módulo
  • drush pmu nombre_del_modulo – Desactiva un módulo
  • drush cr – Limpia todas las cachés
  • drush sql-dump --result-file=/ruta/backup.sql – Realiza una copia de seguridad de la base de datos
  • drush sql-cli < /ruta/backup.sql – Restaura una base de datos
  • drush core:status – Muestra el estado del sitio
  • drush config:import y drush config:export – Importación y exportación de configuraciones
  • drush updatedb – Ejecuta actualizaciones pendientes en la base de datos
  • drush cron – Ejecuta las tareas cron de Drupal

Consejo: Para ver todos los comandos disponibles, ejecuta drush o drush list en el directorio raíz del proyecto. Si quieres ayuda sobre algún comando, escribe drush help nombre_del_comando.

Comandos básicos y avanzados imprescindibles en Drush

  • Crear y gestionar contenido: Desde la creación de usuarios hasta la gestión de roles y permisos, todo es posible desde la consola.
  • Gestión de módulos y temas: Instala, activa, desactiva y actualiza módulos y temas con comandos sencillos y directos. Por ejemplo: composer require drupal/nombre_del_modulo y luego drush en nombre_del_modulo.
  • Gestión de la base de datos: Realiza copias de seguridad, restauraciones y optimizaciones. Ideal para mover entornos o mantener el sitio seguro.
  • Despliegues automáticos: Utiliza el comando drush deploy para actualizar la base de datos, limpiar cachés, importar configuraciones y ejecutar hooks de actualización en un solo flujo, agilizando todos los despliegues.
  • Generadores de código: Drush incorpora utilidades para crear módulos personalizados, plugins, entidades y más, agilizando el desarrollo y minimizando errores comunes.
  • Interacción remota: Trabaja contra servidores remotos o sitios multiinstancia utilizando SSH, ideal para equipos distribuidos o entornos de alta disponibilidad.

Generando módulos personalizados con Drush

Crear un módulo personalizado en Drupal es mucho más rápido y sencillo usando Drush gracias a sus generadores de código.

  1. Genera la estructura del módulo: Ejecuta drush generate module y responde a las preguntas del asistente. Así tendrás los archivos básicos como .info.yml, .module y .routing.yml listos.
  2. Define las rutas: Edita el archivo .routing.yml para indicar cómo debe responder Drupal a las peticiones de tu funcionalidad personalizada.
  3. Implanta la lógica: Añade tu código en el archivo .module, configurando controladores, permisos, servicios o cualquier función que requiera tu proyecto.
  4. Habilita y prueba tu módulo: Utiliza drush en nombre_del_modulo para activarlo y realiza un buen testeo accediendo a las rutas y funciones nuevas.

Con este enfoque, se reduce muchísimo el tiempo necesario para crear un esqueleto sólido de módulo, además de estandarizar el desarrollo según las buenas prácticas de Drupal.

Principales problemas y soluciones al usar Drush

  • Mensaje “PHP version not supported”: Asegúrate de que la versión de PHP sea la compatible con tu versión de Drush. Si es necesario, actualiza PHP desde tu panel de hosting o mediante consola.
  • “Drupal site not found”: Este error suele deberse a que no estás en el directorio raíz del proyecto. Verifica la ruta y prueba de nuevo.
  • “Database connection failed”: Comprueba las credenciales en el archivo settings.php. Errores tipográficos o cambios de contraseña suelen ser la causa.
  • “Drush requires the ‘drupal/core’ package”: Ejecuta composer require drupal/core para asegurar que tu proyecto tenga instalado el core de Drupal necesario.

¿Por qué Drush es tan popular en la comunidad Drupal?

Drush se ha convertido en una herramienta imprescindible para cualquier equipo profesional que trabaje con Drupal. Su integración en los flujos de trabajo diarios, la posibilidad de crear comandos personalizados, su comunidad activa de desarrollo y el constante soporte para nuevas versiones hacen de Drush una elección natural y recomendada.

Además, muchos módulos de terceros exponen funcionalidades adicionales a través de comandos Drush, permitiendo acciones como reconstruir índices de búsquedas, purgar cachés avanzadas o importar datos externos, todo ello sin salir del terminal.

Poniendo todo en práctica: flujos de trabajo reales con Drush

Imagina que tienes que realizar un despliegue de cambios en producción. Un flujo típico podría ser:

  1. Hacer una copia de seguridad de la base de datos: drush sql-dump --result-file=/ruta/backup.sql
  2. Actualizar el código mediante composer
  3. Aplicar actualizaciones de base de datos: drush updatedb
  4. Importar la nueva configuración: drush config:import
  5. Limpiar todas las cachés: drush cr
  6. Verificar el estado del sitio: drush core:status

Todo ello desde un único terminal y en cuestión de minutos, garantizando mayor seguridad y la posibilidad de automatizar todas estas acciones en scripts o pipelines de integración continua.

Consejos avanzados y pequeños trucos

  • Aumenta la verbosidad: Usa los parámetros -v, -vv y -vvv para obtener mensajes más detallados, ideal para depuración y resolución de problemas.
  • Acepta confirmaciones automáticamente: Con el parámetro -y puedes omitir preguntas de confirmación, lo que es útil para scripts y tareas automatizadas.
  • Personaliza tus propios comandos: A través del API de Drush es posible crear comandos a medida, perfectos para tareas específicas del proyecto.
  • Aprovecha los generadores: Desde la versión 10, el comando drush generate te ayuda a crear entidad, módulos, controladores y mucho más, ahorrando horas de trabajo repetitivo.

Drush se ha consolidado como la navaja suiza imprescindible para cualquier persona que gestione sitios Drupal. Su facilidad de uso, compatibilidad con entornos modernos y la enorme comunidad que lo respalda han hecho de esta herramienta el referente a la hora de profesionalizar, automatizar y simplificar el trabajo con Drupal. Implementando Drush en tu flujo de trabajo, conseguirás que la gestión diaria, los despliegues y el desarrollo sean mucho más rápidos, seguros y eficientes. Si aún no lo usas, es un buen momento para empezar y aprovechar todo su potencial.

Etiquetas

Comentarios