Cuando en el desarrollo de un proyecto optamos por el uso de un CMS (sistema de gestión de contenido) como Drush de Drupal y no por otro tipo de tecnología algunas de las razones serían las siguientes:
- La fácil creación, administración y publicación de contenido.
- Rapidez en despliegues.
- Sencillez en el mantenimiento del sitio, incluidas las actualizaciones.
- Una alta compatibilidad con SEO.
- Mucha documentación y gran apoyo de la comunidad de dicho CMS.
También podremos citar la ventaja de tener una interfaz con la que poder ejecutar una serie de acciones de administración sobre nuestro sitio como la invalidación de cachés, la creación de usuarios, la activación de nuestra página de mantenimiento, la importación o exportación de nuestras configuraciones o la instalación de nuestros plugins/módulos, por comentar algunas. En definitiva, la ejecución de una serie de ciertas tareas repetitivas que nuestro sitio necesita.
¿Cuán necesario es realizar una serie de acciones por interfaz en un CMS?
La respuesta es: muy necesario para usuarios no habituados al uso de la consola y nada necesario para usuarios avanzados que podrían lanzar fácilmente esta serie de operaciones por consola a través de aplicaciones basadas en shell que algunos de los CMS nos aportan.
Si nos centramos en el CMS Drupal (actualmente considerado un CMF – content management framework) a partir de la versión Drupal 4.7 y posteriormente reconstruido para la versión Drupal 5, desarrolló una ‘herramienta’ denominada Drush (Drupal Shell), un shell provisto de una interfaz de secuencias de comandos para Drupal.
Este proyecto para Drupal fue originalmente creado por Arto Bendiken, posteriormente mantenido por Franz Heinzmann. Actualmente el mantenedor principal es Moshe Weitzman junto con otros colaboradores y se encuentra alojado en github.
Versiones de Drush y compatibilidad
En el siguiente cuadro podemos ver una representación de la compatibilidad de las distintas versiones de Drush en función de la versión de Drupal junto con la versión de PHP que se requiere.
A día de hoy tenemos vigentes las versiones de Drush 8 para Drupal 7 (end of life en enero del 2025), Drush 11 para Drupal 9 (end of life en noviembre del 2023) y Drupal 10 y Drush 12 únicamente para versiones en Drupal 10.
¿Cómo instalar Drush?
Drush (versiones 10,11 y 12) sólo admiten una forma de instalación. Esta requiere que nuestro sitio de Drupal se haya construido con composer y que añadamos Drush a nuestro proyecto como una dependencia.
¿Cómo lo ejecutamos?
Desde el directorio raíz de nuestro proyecto podremos llamar a Drush a través de vendor/bin/Drush.
Para facilitar el uso de Drush en nuestro proyecto podremos agregar ‘./vendor/bin’ en nuestra variable de entorno PATH; para poder llamar a Drush desde el directorio de nuestro proyecto.
¿Qué son los comandos de Drush?
Los comandos de Drush son ‘herramientas’ que nos permiten interactuar con el código del core, módulos y temas para la realización de una serie de acciones en nuestro sitio de Drupal.
Los comandos de Drush nos ahorraran tiempo en la realización de tareas que requerían navegación y varios clics en la interfaz gráfica para llevarlas a cabo.
Algunos de los comandos de Drush (por ejemplo, para la versión 12) en Drupal son:
- Drush cache:rebuild (reconstruye todas las de cachés del sitio)
- Drush config:import / config:export (importación / exportación de configuración del sitio desde / hasta el directorio de configuración)
- Drush pm:list (listado de módulos o temas disponibles en nuestro sitio)
- Drush updatedb (ejecutará cualquier actualización de base de datos que tengamos pendiente en nuestro sitio)
- Drush role:create (crea un nuevo rol de usuario)
- Drush migrate:import (realiza procesos de migración en nuestro sitio)
También podemos llamar a estos comandos a través de sus alias, por ejemplo:
- Drush cache:rebuild -> Drush cr
- Drush updatedb -> Drush updb
Importante saber que estos comandos pueden requerir parámetros o que estos sean opcionales. Por ejemplo, para la creación de un rol necesitamos el nombre máquina del rol, así como el nombre descriptivo del mismo.
Drush dispone de una serie de opciones globales a través de parámetros. Destacamos los siguientes:
- -v|vv|vvv (aumenta la verbosidad de los mensajes: 1 para salida normal, 2 para salida más detallada y 3 para depuración).
- -y (acepta automáticamente el valor predeterminado para todas las indicaciones del usuario). Equivalente a –no-interaction).
Podemos encontrar listados generales de todos los comandos para una versión específica de Drush, en nuestro caso, la versión 12 con los argumentos necesarios, opcionales y sus alias para cada uno de los comandos.
Drush en los despliegues
Desde la versión 10.3.0 Drush proporciona un comando de deploy en Drupal. Este comando implementa los siguientes comandos en su ejecución:
- Drush updatedb –no-cache-clear (actualizaciones pendientes de base de datos)
- Drush cache:rebuild (limpieza de caché)
- Drush config:import (importación de configuraciones)
- Drush cache:rebuild (limpieza de caché)
- Drush deploy:hook (hooks de actualización pendientes)
En Hiberus Tecnología contamos con un departamento de más de 100 desarrolladores Drupal. Nuestros más de 10 años de experiencia nos ha hecho trabajar en los principales casos de éxito Drupal a nivel nacional. Cuéntanos tu proyecto y conoce a nuestro equipo experto en Drupal.
¿Quieres más información sobre nuestros servicios de Drupal?
Contacta con nuestro equipo de Drupal