La configuration de Drush se fait dans le fichier drushrc.php. Celui-ci peut être situé dans les endroits suivants :

  • Dans le répertoire de configuration du site : par exemple sites/default/drushrc.php
  • Dans le répertoire sites/all/drush/drushrc.php
  • Dans chaque répertoire spécifié par l'option --config (-c)
  • Dans le répertoire de l'utilisateur .drush : par exemple ~/.drush/.drushrc.php
  • Dans le répertoire de configuration du système : par exemple /etc/drush/drushrc.php
  • Dans le répertoire où vous avez installé Drush.

Ce fichier peut être récupéré ici. Si Drush trouve le fichier dans plusieurs des emplacements ci-dessus, les paramètres seront unifiés par des tableaux de configuration fusionnées. Si votre configuration est prévue pour une version spécifique de Drush, vous pouvez renommer le fichier en incluant le numéro de version : drush[VERSION]rc.php. Par exemple, pour Drush 5, ce fichier sera appelé drush5rc.php.

Regardons maintenant quelques exemples de configuration, pour faciliter le développement.

Exemple 1 : Mise à jour du dépôt Git

En général, pour mettre à jour son dépôt Git local à partir du serveur distant, on utilise la commande :

git pull origin branch

Ajoutons la ligne suivante dans le fichier drushrc.php

<?php
$options
['shell-aliases']['pull'] = '!git pull origin branch';
?>

On peut maintenant mettre à jour son dépôt Git avec la commande suivante :

drush pull

Exemple 2 : Activer / désactiver le mode maintenance du site

Pour activer ou désactiver le site, le fichier de configuration doit contenir les deux options suivantes :

<?php
$options
['shell-aliases']['offline'] = 'variable-set -y --always-set maintenance_mode 1';
$options['shell-aliases']['online'] = 'variable-delete -y --exact maintenance_mode';
?>

Il est donc maintenant beaucoup plus simple de basculer en mode maintenance.

drush offline # Passage hors ligne
drush online # Retour en ligne

Exemple 3 : Export de la base de données

L'export de la base de données est une opération assez courante. Cet export devrait éliminer les données inutiles de tables, notamment pour les tables de cache. Les tables dont il est nécessaire de nettoyer les données, sont généralement définies en fonction du site. Par défaut, des données supplémentaires sont stockées dans les tables cache, watchdog et sessions :

<?php
$options
['structure-tables']['common'] = array(
 
'cache',
 
'cache_bootstrap',
 
'cache_field',
 
'cache_filter',
 
'cache_form',
 
'cache_image',
 
'cache_menu',
 
'cache_page',
 
'cache_token',
 
'flood',
 
'sessions',
 
'watchdog',
);
?>

Mais ce n'est pas tout. Il est maintenant nécessaire d'ajouter un alias pour faire un export qui exclut les données des tables listées ci-dessus :

<?php
$options
['shell-aliases']['db-dump'] = 'sql-dump --structure-tables-key=common --gzip --result-file=db_dump_' . date('Y-m-d_H-i') . '.sql';
?>

La commande suivante est maintenant disponible :

drush db-dump

Exemple 4 : Export complet

Un export complet du site peut se faire via la commande Drush drush archive-dump (drush ard). Cependant, dans certaines situations, un export complet n'est pas nécessaire, dans certains cas on peut avoir besoin que de la base de données, dans d'autres que des fichiers, etc. On peut donc mettre en place la configuration suivante :

<?php
$options
['structure-tables']['common'] = array(
 
'cache',
 
'cache_bootstrap',
 
'cache_field',
 
'cache_filter',
 
'cache_form',
 
'cache_image',
 
'cache_menu',
 
'cache_page',
 
'cache_token',
 
'flood',
 
'sessions',
 
'watchdog',
);

$options['shell-aliases']['db-dump'] = 'sql-dump --structure-tables-key=common --gzip --result-file=db-dump_' . date('Y-m-d_H-i') . '.sql';
$options['shell-aliases']['files-dump'] = "core-execute tar -czvf files-dump_" . date('Y-m-d_H-i') . ".tar.gz ./";

$options['shell-aliases']['full-dump'] = "!drush db-dump && drush files-dump";
?>

En conséquence, vous pouvez faire une sauvegarde séparée de la base données, des fichiers du site ou encore un export des deux : drush full-dump Et chose la plus importante, il est toujours possible de spécifier ses propres options, pour se faire des exports personnalisés.

Exemple 5 : quelques alias utiles

Voici quelques alias Drush parmi les plus utilisés (tirés du drushrc.php standard). Afficher la liste des modules (sauf ceux du Core) :

<?php
$options
['shell-aliases']['noncore'] = 'pm-list --no-core';
?>

Vider l'intégralité du cache du site :

<?php
$options
['shell-aliases']['wipe'] = 'cache-clear all';
?>

Désactiver les modules overlay et dashboard :

<?php
$options
['shell-aliases']['unsuck'] = 'pm-disable -y overlay,dashboard';
?>

Désactiver tous les modules qui ne font pas partis du noyau Drupal :

<?php
$options
['shell-aliases']['dis-all'] = '!drush -y dis $(drush pml --status=enabled --type=module --no-core --pipe)';
?>

Autres options

Stocker et envoyer de manière anonyme des statistiques sur l'usage de Drush par les développeurs. Envoyer ces statistiques à l'équipe en charge du développement de Drush contribue à rendre le logiciel meilleur :

<?php
$options
['drush_usage_log'] = TRUE;
$options['drush_usage_send'] = TRUE;
?>

Activer le mode debug de Drush :

<?php
$options
['v'] = 1;
?>

Définir le niveau d'affichage des messages PHP : la valeur par défaut est notice. Dans l'environnement de développement, cette valeur peut être définie à un niveau supérieur, tel que warning. Dans ce cas, assurez-vous que la valeur de l'option error_reporting est définie à E_ALL dans le fichier php.ini de votre configuration serveur.

<?php
$options
['php-notices'] = 'warning';
?>

Modifier l'encodage des messages Drush :

<?php
$options
['output_charset'] = 'ISO-8859-1';
$options['output_charset'] = 'KOI8-R//IGNORE';
$options['output_charset'] = 'ISO-8859-1//TRANSLIT';
?>

Dans le troisième exemple, on a vu comment retirer les données de certaines tables lors de l'export de la base de données. On peut également lister explicitement les tables que l'on veut inclure dans notre export :

<?php
$options
['tables']['common'] = array(
 
'user',
 
'permissions',
 
'role_permission',
 
'role',
 
// etc.
);
?>

Il est aussi possible d'ignorer complétement une table (les données et la structure), par exemple pour des tables temporaires. Dans cas, il faut utiliser l'option --skip-tables-key=common dans notre commande Drush :

<?php
$options
['skip-tables']['common'] = array('temp1', 'temp2', 'temp3');
?>

Être notifier de la fin de l'exécution d'une commande : la version 6 de Drush introduit une nouvelle option, qui permet d'afficher une notification. Pratique dans le cas d'une commande qui prend un peu de temps. Cette option fonctionne sur Linux et Mac OSX (sur ce dernier il faut installer un utilitaire qui interagit avec le centre de notifications : gem install terminal-notifier). Pour utiliser cette option par défaut sur toutes les commandes sans avoir à la spécifier, il faut ajouter la ligne suivante au drushrc.php :

<?php
// Enable notifications by default
$options['notify'] = 1;
?>

Conclusion

Le fichier de configuration peut contenir un grand nombre d'options utiles, je n'ai listé que les plus intéressantes et utilisées. La liste complète des options peut être trouver dans le fichier drushrc.php.

Crédit photo : James Gehrt

Ajouter un commentaire

Plain text

  • Aucune balise HTML autorisée.
  • Les adresses de pages web et de courriels sont transformées en liens automatiquement.
  • Les lignes et les paragraphes vont à la ligne automatiquement.
By submitting this form, you accept the Mollom privacy policy.