[Drupal] Drush lignes de commandes utiles

mercredi 10 mai 2017

Cet article vous présente mes commandes très utiles en Drush

Clear cache

drush cc all

Download Drupal 7

drush dl drupal-7.x

Download commerce_kickstarter

drush dl commerce_kickstart-7.x

Version drush, drupal, php

drush status

Download module

drush dl <module_name>

Enable module

drush -y en <module_name>

Disable module

drush -y dis <module_name>

Retourne la liste des modules comportant le nom module_name

drush pm-list | grep <module_name>

Update module

drush up <module_name>

Drush, lors de la mise à jour d’un module, fait un backup du module version précédente avant et le sauve dans /root/drush-backups/

Si jamais le module pose des problèmes et que vous souhaitez revenir à la précédente version du module, il faut réécraser les fichiers du modules.

cp -R /root/drush-backups/<project_drupal>/<date>/modules/<module_name>/* ./<module_name>

Bien sur on doit se trouver dans le répertoire des modules

Update database après installation d’un module (update.php)

drush updatedb -y

Desinstaller un module

drush pmu <module_name>

List all module non core drupal and enabled

drush pm-list --no-core --type=module --status=enabled --format=list

Attention:, en Drupal, il vaut mieux toujours avoir des fichiers plus à jour que la db!
Car updatedb met à jour la db du coup.
Par contre si la db est à jour et les fichiers sont downgrade par rapport à la db c’est foutu.

Backup and restore

Backup with drush (files + db)

drush archive-dump --destination=/home/<username>/<file_name>.tar

Restore with drush (files + db)

drush archive-restore <file_name>.tar

Si on souhaite faire sur une autre db:

drush archive-restore ./<file_name>.tar --db-url=mysql://root:root@localhost/<database_name>

Backup de la db en excluant certaines tables

Tout d’abord voici la commande pour backuper uniquement la db dans un fichier

drush sql-dump --result-file=~/my-sql-dump-file-name.sql --gzip 

Pour spécifier des tables à ne pas sauvegarder ou à exclure il suffit de modifier le fichier drushrc.php. Petit rappel sur ce fichier, vous le trouverez par défaut dans le répertoire examples de votre installation de drush, regardez les premières lignes du fichier pour savoir où vous pourrez le placer.

Dans ce fichier on va pouvoir définir les tables dont on ne veut pas les données (ex: tables de caches) et les tables dont on ne veut même pas la structure (ex: tables maisons, tables de migrations). Pour cela il vous suffira de remplir le tableau $options[‘structure-tables’] ou $options[‘skip-tables’].

Il est aussi possible de planifier ces backups au travers un cron via la commande en ligne crontab.

Restore la base de donnée en drush

On supprime d’abord la base de donnée du site ensuite on restore le backup

drush sql-drop
drush sql-cli < ~/my-sql-dump-file-name.sql

Backuper uniquement certaines tables via drush

drush sql-dump --tables-list=node,system > /home/xxx/exportdb.sql

Tags: drupal , drush