Est-ce que drush up fait une sauvegarde / vidage de la base de données?

13

Est-ce que l'exécution drush upexécute une sauvegarde de la base de données? D'après les tests, il semble que non. Dois-je faire une sauvegarde de base de données distincte avant de lancer la drush upmise à jour?

user1359
la source
Voir aussi drupal.stackexchange.com/questions/3363/…
Mawg dit de réintégrer Monica

Réponses:

7

Non, ce n'est pas le cas. Il ne fait qu'une sauvegarde des répertoires actuels du module, avant de les remplacer.

Pour créer un vidage SQL, utilisez

drush sql-dump > filename.sql.

Mais n'oubliez pas de déplacer le fichier en dehors de votre racine Web.

Berdir
la source
Je voudrais rappeler aux gens de faire un vidage en dehors de la racine de votre site Web; afin que les pirates restent à l'écart.
chrisjlee
Cette réponse "acceptée" n'est pas correcte. Drush fournit en fait un vidage de la base de données: "drush sql-dump" drushcommands.com/drush-7x/sql/sql-dump
sea26.2
Hum. Essayez de relire la réponse. Tout cela, pas seulement la première phrase. Parce que c'est exactement ce que j'ai écrit. La question était de savoir si "drush up" le fait, pas si drush peut le faire.
Berdir
8

Pour faire un vidage mysql compressé avec drush :

drush sql-dump --gzip --result-file

Mise à jour à partir du commentaire de wranvaud: Si vous ne spécifiez pas le fichier de résultat, il sera stocké dans votre dossier personnel sous ~/drush-backups/<db_name>/<timestamp>/<database_file>.sql.gz:, sinon vous pouvez spécifier --result-file = '~ / Documents /'

milkovsky
la source
1
si vous ne spécifiez pas le fichier de résultat, il sera stocké dans votre dossier personnel sous ~ / drush-backups / <db_name> / <timestamp> / <database_file> .sql.gz sinon vous pouvez spécifier--result-file='~/Documents/<my_backups_folder>'
wranvaud
5

Si le module du module Sauvegarde et migration est installé, vous pouvez l'appeler depuis Drush avec

$ drush bam-backup

Wrashi
la source
drush prend en charge nativement un vidage de base de données, sans avoir besoin d'un module supplémentaire, voir ci
wiifm
2

Il s'agit d'une solution de script bash pour la sauvegarde et la restauration à partir de la ligne de commande avec drush et Acquia-Drupal :

  • Remarque: Il vous suffit de modifier le chemin de base, le nom du site et peut-être le chemin de drush dans les deux scripts pour répondre à vos besoins
  • Remarque 2: Le script de sauvegarde créera un .tar contenant vos fichiers de site plus un fichier data.sql décrivant votre base de données
  • Remarque 3: Le script de restauration choisira le dernier fichier de sauvegarde .tar créé par le script de sauvegarde

INSTRUCTIONS

1) Trouvez le chemin de drush (drush est inclus dans acquia), dans mon cas (drushpath = "/ Applications / acquia-drupal / drush")

2) Créez un fichier backup_ mysite et un fichier restore_ mysite et incluez-les dans le chemin du dossier bin (par exemple: / usr / local / bin)

3) Modifier backup_ mysite

#!/bin/bash
# Text color variables
txtgrn=$(tput setaf 2)    # Green
txtylw=$(tput setaf 3)    # Yellow

basepath="path-to-your-server-root" #4ex "/Users/monojones/www"
backuppath="$basepath/backups"
drushpath="/Applications/acquia-drupal/drush"
sitename="your-sitename"
tempdir="$backuppath/backup_$sitename"

if [ -d $backuppath ]; then
 echo "Backup path finded. [ $backuppath ]"
else
  echo "Creating backup path... [ $backuppath ]"
  mkdir $backuppath
fi

echo "${txtylw}Backing up $sitename ... ${txtgrn}"
if [ -d "$backuppath/$sitename" ]; then
 echo "Backup subdir finded."
else
 echo "Creating $backuppath/$sitename" 
 mkdir $backuppath/$sitename
fi
echo "${txtylw}"
mkdir $tempdir
$drushpath/drush -r $basepath/$sitename  sql-dump --result-file=$tempdir/data.sql
tar -pczf $tempdir/files.tgz $basepath/$sitename $systempaths
tar -pczf $backuppath/$sitename/$sitename.backup_$(date +%Y%m%d%H%M).tar.gz $tempdir
rm -rf $tempdir

4) Modifier restore_ mysite

#!/bin/bash
# Text color variables
txtred=$(tput setaf 1)    # Red
txtgrn=$(tput setaf 2)    # Green
txtylw=$(tput setaf 3)    # Yellow

basepath="path-to-your-server-root" #4ex "/Users/monojones/www"
backuppath="$basepath/backups"
sitename="your-sitename"
drushpath="/Applications/acquia-drupal/drush"

echo "${txtylw}Restoring ${txtred}$sitename ${txtylw} database: ${txtgrn}"
FILE=`ls -1 $backuppath/$sitename/$sitename.backup_* | tail -n 1`
echo "Last backup file: ${txtpur} $FILE ${txtylw}"
mkdir temp_drupalbackup_$sitename 
tar -C temp_drupalbackup_$sitename -zxvf $FILE ${backuppath:1}/backup_$sitename/data.sql
$drushpath/drush sql-drop
drush sql-cli <  temp_drupalbackup_$sitename/${backuppath:1}/backup_$sitename/data.sql
rm -R temp_drupalbackup_$sitename
monojones
la source
1

Vous pouvez également utiliser sql-sync pour la sauvegarde.

$ drush sql-sync -v @site1 @site2
Sivaji
la source
C'est le meilleur moyen de sauvegarder un site.
1

C'est très facile maintenant avec Drush 5

"Remarque: Drush 5 a introduit les commandes de vidage d'archive et de restauration d'archive qui vous permettent de sauvegarder votre code, vos fichiers et votre base de données dans un seul fichier."

https://drupal.org/upgrade/backing-your-site-command-line

frazras
la source