Image

Drush, la ligne de commande pour Drupal

Drush est une interface de ligne de commande et de scripting pour Drupal qui va vous permettre de réaliser de nombreuses tâches répétitives ou longue sur un site Drupal. Si vous êtes réfractaire à la ligne de commande, passez votre chemin...

L’intérêt principal sera la rapidité d'exécution comparativement à l'environnement graphique de votre site. Le gain n'est pas non plus phénoménal mais lors de la maintenance ou la construction d'un site vous vous rendrez vite compte de son intérêt. Ensuite si vous mettez un peu les mains dans le cambouis, l'écriture de script Drush vous permettra d'automatiser des tâches sur votre site et entre vos environnements (staging, pre-prod, prod...).

Drush sous *nix

De nombreuses distributions possèdent un paquet drush, ce ne sera pas la dernière version mais l'installation sera plus simple :

Debian

sudo apt-get install drush

CentOS

sudo yum install drush

OS X

brew install drush

Drush sous Windows

http://www.drush.org/drush_windows_installer

Il est conseillé d'installer git en parallèle si vous ne l'avez pas, cela permettra d'avoir une fenêtre de commande commune avec des commandes unix utiles.

https://code.google.com/p/msysgit/downloads/list

Premiers pas avec drush

Sous linux vous aurez maintenant accès à drush, par défaut celle-ci vous affichera la liste des commandes drush disponibles. Sous windows vous pouvez soit lancer le prompt fourni avec l'installer ou utiliser le bash git si ce dernier est installé.

Commandes Drush de base (avec leurs options utiles !)

se positionner dans le répertoire de votre site web (/var/www/drupal, ou EasyPHP\data\localweb\projects...)

Avoir un petit état des lieux

drush status

Télécharger un module ou un thème

drush dl NOM_PROJET AUTRE_PROJET ...

9a fonctionne évidement pour télécharger la dernière version de drupal, dans ce ca même pas besoin d'argument

drush dl

Activer un module (le -y permet même de le télécharger automatiquement)

drush -y en NOM_PROJET AUTRE_PROJET ...

Désactiver un module (le -y permet d'éviter le prompt)

drush -y dis NOM_PROJET AUTRE_PROJET ...

Récupérer un lien de connexion pour le super utilisateur du site (pour se connecter automatiquement, très pratique !)

drush uli

Vider tous les caches

drush -y cc all

Vider seulement le cache de theme (prendre en compte un override de tpl)

drush -y cc theme-registry

Vider seulement le cache de menu (prendre en compte un nouveau HOOK_menu ou un changement)

drush -y cc menu

Vous avez activer l'aggrégation css / js, vidage du cache après une petite modification

drush -y cc css-js

Lancer le cron, l'option -v vous donnera des informations détaillés sur ce qu'il se passe, très utile quand un cron ne veux pas se lancer et qu'on ne sait pas pourquoi

drush -v cron

Lister les modules actifs

drush pml --status=enabled

Avec le module complémentaire Backup migrate, faire un backup de la base de donnée

drush bb

Avec le module complémentaire Feature, voir la liste des features

drush fl

Version avec seuleemnt les features activés

drush fl --status=enabled

Avec le module complémentaire Feature et Diff, voir les changements d'une feature

drush fd NOM_FEATURE

Update d'une feature avec l'état actuel

drush -y fu NOM_FEATURE

Revert d'une feature pour revenir à l'état du code

drush -y fr NOM_FEATURE

Avec le module devel, réinstaller complètement un module (désactive, désinstalle et active)

drush dre NOM_MODULE

Il y en a bien sûr beaucoup d'autres mais celles-ci sont celles que j'utilise le plus souvent.

Commentaires