Una de las características que más brillan a la hora de trabajar con Drupal es la posibilidad de trabajar con la herramienta drush. Con drush se puede importar traducciones, borrar caché, etc. A parte de esto, otra de las características más interesantes que tiene es que puede acceder a la configuración y el estado del portal gracias a drush config y drush state, respectivamente.
Drush config
Con drush config se puede acceder a los parámetros de configuración del portal, modificarlos e incluso eliminarlos. A continuación se mostrarán una serie de ejemplos útiles. Como siempre, se puede consultar más información desde la página oficial de drush.
- config:delete. Permite borrar algunos parámetros de configuración en específico o todo un objeto de configuración.
drush config:delete system.date timezone.default # Así se borrará solamente la clave "timezone.default" del objeto de configuración "system.date".
drush config:delete system.date,system.cron # Se borrarán completamente los objetos de configuración "system.date" y "system.cron"
- config:edit. Permite cambiar mediante el uso de un editor de texto los parámetros de un objeto de configuración.
drush config:edit core.extension # Abrirá una shell con el archivo especificado. Una vez que se termine de editar y se cierre el archivo, se importará en el portal web.
- Con el parámetro --editor se puede especificar con que editor abrir el archivo de configuración.
- config:export. Exporta la configuración actual en la base de datos reemplazando la que se encuentra en la carpeta de configuración del proyecto.
- Con el parámetro --destination se puede especificar donde se quieren guardar los archivos de configuración.
- Con el parámetro --diff se mostrarán la diferencia que contienen los objetos de configuración, en vez de los archivos que se reemplazarán.
- config:import. Importa la configuración desde el directorio de configuración, reemplazando la configuración de la base de datos.
- Se puede especificar el directorio del cual se quiere importar la configuración con el parámetro --source.
- config:get. Recupera la información de un objeto de configuración.
drush config:get system.site # En este caso recuperaría el objeto de configuración del sistema.
- Es posible especificar el formato en el que se quiere que se muestre con el tag --format.
- config:pull. Permite transferir y exportar configuración de un entorno a otro. Un caso práctico sería en el caso de que alguien tocara configuración en un entorno de producción, con este comando, se podría perfectamente traer a local y así trabajar sincronizar los entornos.
drush config:pull @source @destionation # se puede especificar el directorio en el que se almacena la configuración de la siguiente forma: @destionation:path/to/config/directory
- config:set. Cambia el valor de de un objeto de configuración directamente. Este cambio se hace directamente al objeto de configuración en la base de datos.
drush config-set system.theme admin gin -y # cambia el tema de configuración del portal a gin.
- Se especifica primero el objeto de configuración a cambiar, el parámetro y el valor que recibirá.
- config:status. Muestra las diferencias entre la configuración de la base de datos y la que se encuentra en el directorio de configuración.
- Con --state podemos indicarle el estado de dicha configuración 'Identical', 'Only in sync dir', etc. Por defecto el valor es Only in DB,Only in sync dir,Different.
- Con --prefix podemos indicarle el prefijo por el que empieza el objeto de configuración.
Drush state
El drush state permite obtener y modificar diferentes elementos del sistema de Drupal, como el cron, la caché, el modo mantenimiento del sistema, el modo debug de twig, etc..
- state:delete. Elimina la entrada especificada.
drush state:del system.cron_last # Se borra la entrada de la última vez que se ejecutó el cron.
- state:get. Recupera el valor de la entrada especificada.
drush state:get drupal_css_cache_files --format=yaml # Recupera los archivos css de caché del sistema, especificando el formato en el que se quiere que se devuelva (en este caso yml).
- state:set. Modifica el valor de la entrada especificada.
drush state:set system.maintenance_mode 0 --input-format=integer # Se desactiva el modo mantenimiento. mediante el input format se le especifica en que formato le va a llegar el valor.
Con estas herramientas se puede manejar el sistema sin necesidad de entrar en él, lo que facilitaría tareas de mantenimiento, automatización, etc.