Drush adverteert zichzelf als een "command line shell and scripting interface for Drupal". Je kunt er een bestaande Drupal-website mee beheren, maar zeker zo handig is dat je Drush ook kunt gebruiken om een Drupal-website te installeren. In plaats van een tarball van de website van Drupal te moeten downloaden, het archief op je webserver uit te pakken, een database voor je website aan te maken, naar de url van de website te surfen en doorheen de installatiepagina's te klikken, vraagt een installatie van Drupal met Drush slechts enkele opdrachten:

# cd /var/www

# drush dl drupal-7.2

# cd /var/www/drupal-7.2

# drush site-install --db-url=mysql://gebruiker:[email protected]/drupal

Met drush dl download je dus een specifieke versie van Drupal, en met drush site-install installeer je deze, waarbij je de databank aangeeft. Hierna kun je op de Drupal-website inloggen met gebruikersnaam en wachtwoord admin.

Met drush help dl en drush help site-install krijg je te zien welke opties beide opdrachten ondersteunen. Met drush dl kun je overigens ook specifieke modules, thema's of profielen downloaden: geef daarvoor in plaats van drupal-7.2 de naam van het project op als parameter. Dezelfde modules kun je daarna inschakelen met de opdracht drush en < modules >.

Drush kan ook de lastige taak op zich nemen om Drupal-websites te upgraden. De opdracht drush up controleert op drupal.org of er nieuwe releases van de Drupal-core en alle geïnstalleerde modules zijn en stelt je voor om de updates te downloaden en eventuele upgrades van de databank uit te voeren. Er wordt zelfs een back-up uitgevoerd voor de upgrade.

Multi-site

In het bovenstaande voorbeeld voerden we Drush uit in de root-directory van een Drupal-website, maar Drush kan ook perfect met meerdere Drupal-websites werken. Gebruik hiervoor de opties --root en --uri. Dat wordt echter al vlug omslachtig, maar Drush kent een systeem van aliassen. Deze definieer je in het bestand ~/.drush/aliases.drushrc.php:

$aliases['example'] = array(

'root' => '/var/www/example/drupal-7.2',

'uri' => 'example.com',

);

Als je nu website example.com wil upgraden, dan kan dat met de opdracht drush @example up. Je kunt in de definities van je aliassen ook de opties remote-host en remote-user gebruiken om Drupal-websites op andere machines via ssh te beheren. We hebben hier nog maar een fractie van de mogelijkheden van Drush besproken, dus bekijk zeker eens de online documentatie en de helpfunctie van Drush, want voor wie veel Drupal-websites beheert kan het programma heel wat klikwerk besparen.