[Drupal] Drush lignes de commandes utiles
mercredi 10 mai 2017Cet 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