Делает ли drush up резервное копирование / дамп базы данных?


13

Работает ли запущенная drush upрезервная копия базы данных? Из тестирования похоже, что нет. Должен ли я делать отдельное резервное копирование базы данных перед запуском drush upдля обновления?


Ответы:


7

Нет, это не так. Он только создает резервную копию текущих каталогов модулей, прежде чем заменить их.

Чтобы создать дамп sql, используйте

drush sql-dump > filename.sql.

Но не забудьте переместить файл за пределы своего webroot.


Я хотел бы напомнить людям делать дамп вне корня вашего сайта; так что хакеры будут держаться подальше.
Chrisjlee

Этот «принятый» ответ не является правильным. Drush фактически предоставляет дамп базы данных: «drush sql-dump» drushcommands.com/drush-7x/sql/sql-dump
sea26.2

Um. Попробуйте прочитать ответ еще раз. Все это, а не только первое предложение. Потому что это именно то, что я написал. Вопрос заключался в том, делает ли это «drush up», а не в том, может ли это делать drush.
Бердир

8

Чтобы сделать gzipped mysql dump с drush :

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

Обновление из комментария wranvaud: Если вы не укажете файл результатов, он будет храниться в вашей домашней папке в папке:, в ~/drush-backups/<db_name>/<timestamp>/<database_file>.sql.gzпротивном случае вы можете указать --result-file = '~ / Documents /'


1
если вы не укажете файл результатов, он будет храниться в вашей домашней папке в ~ / drush-backups / <имя_библиотеки> / <отметка времени> / <файл_базы_данных> .sql.gz, в противном случае вы можете указать--result-file='~/Documents/<my_backups_folder>'
wranvaud


2

Это решение bash-скрипта для резервного копирования и восстановления из командной строки с помощью drush и Acquia-Drupal :

  • Примечание. Вам нужно всего лишь изменить базовый путь, имя места и, возможно, drushpath в обоих сценариях в соответствии с вашими потребностями.
  • Примечание 2: Сценарий резервного копирования создаст .tar, содержащий файлы вашего сайта плюс файл data.sql, описывающий вашу базу данных.
  • Примечание 3: сценарий восстановления выберет последний файл .tar, созданный сценарием резервного копирования.

ИНСТРУКЦИИ

1) Найдите путь для прорисовки (в моем случае это входит в acquia) (drushpath = "/ Applications / acquia-drupal / drush")

2) Создайте файл backup_ mysite и файл restore_ mysite и включите их в путь к папке bin (например: / usr / local / bin)

3) Редактировать резервную копию_ 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) Редактировать 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

1

Вы также можете использовать sql-sync для резервного копирования.

$ drush sql-sync -v @site1 @site2

Это лучший способ сделать резервную копию сайта.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.