Drupal-Entwicklung mit Drush und Shell-Skripten vereinfachen

Bei der Entwicklung mit mehreren Team-Mitgliedern passiert häufig Neues in der Code-Basis. Einmal muss vielleicht die update.php ausgeführt werden, weil ein Modul in neuerer Version eingesetzt wird, Features müssen bei Änderungen manuell zurückgesetzt werden, ein Feld war vielleicht überflüssig geworden und muss gelöscht werden. Wir lösen dieses Problem mit Update-Scripts. Nach jedem git pull führen die Entwickler einfach die Datei update.sh aus und alles, was getan werden muss, passiert automatisch. Typischerweise ist das das Leeren vom Cache, das Aktivieren von neuen Modulen, das Zurücksetzen von Features. Was auch häufig vorkommt ist das Löschen von Feldern, die nicht mehr benötigt werden oder das Indizieren von Nodes für Solr.

Hier ein paar Beispiele, was man in Kombination mit Drush im Script machen kann:

  • Module oder Themes aktivieren und deinstallieren
  • Features zurücksetzen
  • Den Cache leeren
  • Datenbankaktualisierungen durchführen (update.php)
  • Inhaltstypen und Felder löschen
  • Inhalte mit Apache Solr indizieren
  • Alles, was Drush sonst noch kann

Die Skripte liegen in sites/all/scripts. Hier ein einfaches und verständliches Beispiel für eine solche Datei, die in sites/all/scripts liegen kann: [gist:5848905]

Das Skript gibt am Ende eine Benachrichtigung aus und teilt uns mit, wenn es fertig ist. In der Zwischenzeit können wir etwas anders machen.

Außerdem haben wir ein Installations-Skript, mit dem jeder im Team schnell ins Projekt starten kann. Gemeinsam mit dem Update-Skript kann man also jederzeit frisch ins Projekt starten, indem man einfach nur diese beiden Dateien ausführt. Hier ein Beispiel für die Datei install.sh: [gist:5848790]

Was haltet ihr von unseren Scripts? Verwendet ihr in eurem Team etwas ähnliches?