Drush

Argomenti: 

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