drush avancé : un cas d'usage
DESCRIPTION
Lightning talk de 5 minutes sur Drush.Présenté au Meetup Drupal-Fr à Paris le 26 avril 2012.TRANSCRIPT
[email protected] // Drupal Meetup Paris 26 avril 2012
Tout le monde connaît Drush !?
● Dru(pal)-Sh(ell) : outil pour effectuer des opérations sur un site Drupal en ligne de commande.
● Quelques commandes bien connues et bien pratiques :
$ drush cache-clear all
$ drush pm-download admin
$ drush pm-enable admin
$ drush sql-dump > mondump.sql
● Mais on peut faire des choses bien plus complexes ...
[email protected] // Drupal Meetup Paris 26 avril 2012
Les fichiers de configuration de Drush
● Drush est configurable via des fichiers drushrc.php et aliases.drushrc.php
● Via les site-aliases, Drush nous permet de référencer des instances Drupal.
● Ces instances peuvent être locales ou distantes.
<?php
$aliases[monsite.dev] = array(
'root' => '/var/www/monsite.dev',
'remote-host' => 'monsite.serveur-dev.fr',
'remote-user' => 'devuser',
);
$aliases[monsite.prod] = array(
'root' => '/var/www/monsite.fr',
'remote-host' => 'www.monsite.fr',
'remote-user' => 'produser',
);
<CHEMIN>/monsite.local/sites/all/drush/aliases.drushrc.php
[email protected] // Drupal Meetup Paris 26 avril 2012
Utiliser les site aliases
● Nous avons les alias suivants :
$ drush @self cc all
$ drush @monsite.dev cc all
$ drush @monsite.prod sql-dump > monfichier.sql
● Il est maintenant possible d'adresser des commandes à des instances Drupal précises :
@self
@monsite.dev
@monsite.prod
[email protected] // Drupal Meetup Paris 26 avril 2012
Synchroniser des instances Drupal
Synchroniser les bases de données de deux instances :
$ drush sql-sync @monsite.dev @self
Synchroniser le répertoire files de deux instances :
$ drush rsync @monsite.dev:%files @self:%files
$ drush ssh @monsite.dev
Ou tout simplement se connecter à un serveur distant :
[email protected] // Drupal Meetup Paris 26 avril 2012
La morale de l'histoire
● Bien configuré, Drush permet d'accélérer considérablement le développement Drupal.
● Cela vaut la peine d'investir une heure ou deux dans des fichiers de configuration pour un projet.
● Ces fichiers sont versionnés avec le code et évoluent avec celui-ci.
● Il n'y a pas d'excuses : Drush est très bien documenté
$ drush topic