Drush (http://drupal.org/project/drush) è un tool utilizzabile da linea di comando per interagire con una (o più in caso di multisite) installazione di Drupal.
I comandi che si possono eseguire sono veramente tanti e alcuni hanno varie opzioni e flag, è possibile vederli tutti eseguendo un "drush help" e ottenere un aiuto su una specifico comando eseguendo "drush help [nome_comando]" (es. drush help dl).
Qui parlerò della versione 5 del modulo. Il comando "drush version" mostra a schermo la versione correntemente utilizzata.
Ogni comando ha un alias per abbreviarlo, es. drush dl alias di drush pm-download. Gli alias di seguito compaiono tra parentesi.
Vediamo alcuni comandi suddivisi per area di gestione.
Gestione moduli/temi.
- drush pm-download (dl) [modulo] (es. drush dl views): scarica il modulo [modulo] (N.B. http://drupal.org/project/[modulo]);
- drush pm-enable (en) [modulo] (es. drush en views): abilita il modulo [modulo];
- drush pm-disable (dis) [modulo] (es. drush dis views): disabilita il modulo [modulo];
- drush pm-uninstall [modulo] (es. drush pm-uninstall views): disinstalla il modulo [modulo] (N.B. il nome del modulo è facoltativo, se eseguito senza verranno disinstallati tutti i moduli disattivati e ma ancora installati);
- drush pm-update (up) [modulo] (es. drush up views): esegue l'update del modulo e l'aggiornamento del database (N.B. il nome del modulo è facoltativo, se eseguito senza verranno aggiornati tutti i moduli e temi e poi eventualmente anche il core);
- drush pm-updatecode (upc) [modulo] (es. drush upc views): esegue l'update del modulo senza l'aggiornamento del database -- solo codice (N.B. il nome del modulo è facoltativo, se eseguito senza verranno aggiornati tutti i moduli e temi e poi eventualmente anche il core);
- drush pm-info (pmi) [modulo] (es. drush pmi views): mostra informazioni estese sul modulo (N.B. il nome del modulo è facoltativo, se eseguito senza verranno visualizzati tutti i moduli e temi);
- drush pm-list (pml): visualizza tutti i moduli installati (comodo per avere un lista all'interno di un file di testo "drush pml > moduli_installazione.txt");
- drush pm-refresh (rf): ricarica le informazioni sugli aggiornamenti dal server;
- drush pm-releasenotes (rln) [modulo]: visualizza le note di rilascio di un progetto;
- drush pm-releases (rl) [modulo]: visualizza le informazioni di rilascio di un determinato progetto;
Gestione core.
- drush cc (cache-clear): pulisce le cache, è possibile selezionare quale tipo di cache pulire (registro temi, cache drush etc..) o eseguire la pulizia completa;
- drush core-cron (cron): esegue il cron di sistema;
- drush archive-dump (arb): effettua il backup del codice, del db e dei files dell'installazione. Ha molte opzioni un esempio drush arb default --destination=ganovelli.it.tar.gz crea nella directory corrente un archivio tar/gzip del sito di default dell'installazione (se non è un multisite è l'installazione base di default);
- drush archive-restore (arr): operazioni inversa al comando precedente, ripristina un backup. Esempio drush arr ./ganovelli.it.tar.gz ripristina l'installazione presente nel file creato nell'esempio precedente;
- drush cache-get (cg): ritrova un oggetto dalla cache e lo visualizza;
- drush cache-set (cs): inserisce un oggetto in cache espresso in formato JSON o var_export();
- drush core-config (conf): modifica i file di configurazione di Drupal, lanciando un editor esterno (ad esempio settings.php).
- drush updatedb (updb): lancia lo script di aggiornamento del database.
Gestione utente.
- drush user-password (upwd): reimposta la password per il nome utente specificato;
- drush user-add-role (urol): (es drush urol "editor" --uid=3,4) aggiunge un ruolo agli account specificati;
- drush user-remove-role (urrol): rimuove i ruoli specificati agli utenti specificati;
- drush user-block (ublk): (es drush urol "editor" --uid=3,4) blocca gli utenti specificati;
- drush user-unblock (uublk): sblocca gli utenti specificati.
- drush user-cancel (ucan): (es drush ucan "pippo") elimina l'account con il nome specificato;
- drush user-create (ucrt): (es drush ucrt "pippo") crea un account con il nome specificato;
- drush user-information (uinf): (es drush uinf 1,5) mostra informazioni sugli utenti specificati;
- drush user-login (uli): (es drush uli mg)crea e mostra il link per il recupero della password per l'utente specificato;
Ogni modulo o tema aggiuntivo che viene installato nel sistema può ulteriormente estendere la lista di comandi a disposizione. Ad esempio installando il tema Omega avremo a disposizione il comando "drush omega-subtheme [nome_nuovo_tema]" utile per creare un tema utilizzando come base Omega (sub-theming).
Molti dei comandi devono essere eseguiti da una posizione in cui drush possa trovare tutti i file di cui necessita per l'installazione Drupal: solitamente è sufficiente portarsi dentro la directory /sites/. E' anche possibile eseguire drush da una qualsiasi locazione facendo sapere al programma quale "root" utilizzare attraverso il parametro "-r": questo è indispensabile per eseguire ad esempio drush da crontab. Con l'ulteriore parametro "-l" è possibile specificare l'url del dominio del sito su cui eseguire il comando (necessario solo per installazioni multisite). Un esempio completo:
drush core-cron -r /var/www/drupal/production/drupal-7/ -l http://www.ganovelli.it