Migration Drupal façile avec Drush

Mercredi, Février 8, 2012

Avec Drush on peut migrer façilement un site d'un environnement de dev en prod et vice-versa. Tout d'abord il faut créer un fichier aliases.drushrc.php à la racine du site qui contiendras les paramètres vers l'environement de prod.

<?php
$aliases['prod'] = array(
  'root' => '/path/to/prod',
  'uri' => 'default',
  'remote-host' => 'host',
  'remote-user' => 'user',
    'db-url' => 'mysql://user:pass@host/name',
    'path-aliases' => array(
       '%dump-dir' => '/path/to/dump',
   ),
);
?>

Synchroniser les fichiers

Pour synchroniser les fichiers avec rsync de dev vers prod il faut juste taper cette commande dans le répertoire racine de l'install de dev.

drush rsync default @prod

Drush demanderas une confirmation et le mot de passe de l'utilisateur distant. Le fichier settings.php est exclu ainsi que le fichier cachés. Si on veut mettre à jour uniquement le thème par exemple on utiliseras la commande

drush rsync sites/all/themes/basic @prod:sites/all/themes/basic

Par défaut Drush effectue un transfert incrémental, c'est à dire que les fichiers qui n'existent plus sur la source ne sont pas effacés sur la destination. On peut toutefois effectuer un transfert différentiel en rajout l'option --delete

drush rsync --delete sites/all/themes/basic @prod:sites/all/themes/basic

Synchroniser les bases de données

Pour synchoniser les base de données il faut taper la commande

drush sql-sync default @prod

Tout comme pour la commande rsync drush demanderas une confirmation et le mot de passe de l'utilisateur distant.

Tags: