¿Drush up realiza una copia de seguridad / volcado de la base de datos?

13

¿ drush upEjecutar ejecuta una copia de seguridad de la base de datos? De las pruebas, parece que no. ¿Debo hacer una copia de seguridad de la base de datos por separado antes de ejecutar drush uppara actualizar?

usuario1359
fuente
Vea también drupal.stackexchange.com/questions/3363/…
Mawg dice que reinstale a Monica el

Respuestas:

7

No, no lo hace. Solo hace una copia de seguridad de los directorios del módulo actual, antes de reemplazarlos.

Para crear un volcado de sql, use

drush sql-dump > filename.sql.

Pero recuerde mover el archivo fuera de su raíz web.

Berdir
fuente
Me gustaría recordarles a las personas que hagan un volcado fuera de la raíz de su sitio web; para que los hackers se mantengan alejados.
chrisjlee
Esta respuesta "aceptada" no es correcta. Drush de hecho proporciona un volcado de la base de datos: "drush sql-dump" drushcommands.com/drush-7x/sql/sql-dump
sea26.2
Um. Intenta leer la respuesta nuevamente. Todo, no solo la primera oración. Porque eso es exactamente lo que escribí. La pregunta era si "drush up" lo hace, no si drush puede hacerlo.
Berdir
8

Para hacer un volcado mysql comprimido con drush :

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

Actualización del comentario de wranvaud: si no especifica el archivo de resultados, se almacenará en su carpeta de inicio en: de lo ~/drush-backups/<db_name>/<timestamp>/<database_file>.sql.gzcontrario, puede especificar --result-file = '~ / Documents /'

milkovsky
fuente
1
si no especifica el archivo de resultados, se almacenará en su carpeta de inicio en ~ / drush-backups / <db_name> / <timestamp> / <database_file> .sql.gz de lo contrario, puede especificarlo--result-file='~/Documents/<my_backups_folder>'
wranvaud
5

Si tiene instalado el módulo del módulo Copia de seguridad y migración , puede llamarlo desde Drush con

$ drush bam-backup

Wrashi
fuente
drush admite de forma nativa un volcado de la base de datos, sin la necesidad de un módulo adicional, ver arriba
wiifm
2

Esta es una solución de script bash para hacer copias de seguridad y restaurar desde la línea de comandos con drush y Acquia-Drupal :

  • Nota: Solo tiene que cambiar la ruta base, el nombre del sitio y quizás la ruta drush en ambas secuencias de comandos para satisfacer sus necesidades
  • Nota 2: El script de copia de seguridad creará un archivo .tar que contiene los archivos de su sitio más un archivo data.sql que describe su base de datos
  • Nota 3: el script de restauración elegirá el último archivo de copia de seguridad .tar creado por el script de copia de seguridad

INSTRUCCIONES

1) Encontrar la ruta de drush (drush está incluido en acquia), en mi caso (drushpath = "/ Applications / acquia-drupal / drush")

2) Crear un backup_ mysite archivo y un restore_ mysite archivo e incluirlos en su ruta de la carpeta bin (por ejemplo: / usr / local / bin local)

3) Editar 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) Editar 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
fuente
1

También puede usar sql-sync para la copia de seguridad.

$ drush sql-sync -v @site1 @site2
Sivaji
fuente
Esta es la mejor manera de hacer una copia de seguridad de un sitio.