drush

drush_multi Session, DrupalCamp Vienna, November 2009
Foto: Florian Klare, ©

"Drush und Multisite: drush_multi",
Session über drush_multi auf dem DrupalCamp Vienna, November 2009.

Gestern wurde drush in der Version 2.1 herausgegeben.

Neben zahlreichen Bug Fixes gibt es zwei signifikante Änderungen, die ich hier beschreiben möchte.

  1. Die Entfernung des Shebang's in drush.php.
  2. Die Einführung von Aliases.

Drush – Das Sackmesser für die Kommandozeile

Mein Vortrag über drush auf dem DrupalMediaCamp 2009 in Aarau, Schweiz.

Foto von Jürgen Brocke

Die Konfigurationsdatei für drush

Hier verwendet, drush für Drupal 6.x.

  1. <?php
  2. $options['r'] = '/home/foobar/drupal/6.x';
  3.  
  4. $options['v'] = 1;
  5.  
  6. $options['skip-tables'] = array(
  7.  'common' => array('accesslog', 'cache', 'cache_block', 'cache_filter', 'cache_form', 'cache_menu', 'cache_page', 'cache_update', 'history', 'search_dataset', 'search_index', 'search_total', 'sessions', 'watchdog'),
  8. );
  9.  
  10. $options['handler'] = 'wget';

Drush ist eine Schnittstelle für Drupal auf der Kommandozeile, praktisch wie Schweizer-Taschenmesser und gerade für jene, die sowieso mit der Shell arbeiten.

Drush_mm-Adminrole-Workaround

Drush, drush_mm und adminrole sind wirklich nützliche Module, funktionieren aber leider noch nicht zusammen,

In drush_mm findet noch keine Überprüfung statt ob adminrole installiert bzw, aktiviert ist, die Funktion adminrole_update_perms() aus adminrole.module wird durch

drush mm install modul

nicht aufgerufen.

Und hier der Workaround:

drush mm install modul && drush eval "adminrole_update_perms();"

Klappt und ich weiss jetzt wofür das eval-Statement gut sein kann.

Update 21.02.2009 02:38 Patches im Anhang
Ein kürzere, elegantere und zukunftsträchtigere Lösung, je ein Patch für drush_mm und adminrole von dereine, Danke!
und meine Lösung, welche unabhängig von adminrole ist.

Um drush in einer Multisiteumgebung zu arbeiten, haben sich folgende Mechanismen als nützlich erwiesen:

So soll die Multisiteumgebung später mal aussehen:

drupal/
|-- 6.x -> drupal-6.4
|-- 6.x_backup
|-- 6.x_sites
|   |--all
|   |   |-- modules
|   |   `-- themes
|   |-- default
|   |-- example.com -> example.com.localhost
|   |  |-- files
|   |  |-- modules
|   |  `-- themes
|   `-- example.com.localhost
|      |-- files
|      |-- modules
|      `-- themes
`-- drupal-6.4
    |-- backup -> ../6.x_backup
    |-- includes
    |-- misc
    |-- modules
    |-- profiles
    |-- scripts
    `-- sites  -> ../6.x_sites

Anmerkungen

Der Ordner 6.x_backup beziehungsweise der symbolische Link backup in der
Wurzel der Drupal-Installation ist drush-spezifisch.

Der Ordner 6.x_sites beziehungsweise der symbolische Link sites beinhaltet die einzelnen Sites und deren Daten.

Stoppt die Vorratsdatenspeicherung! Jetzt klicken &handeln!