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

หนอ ลองอ่านคำตอบอีกครั้ง ทั้งหมดไม่ใช่แค่ประโยคแรก เพราะนั่นคือสิ่งที่ฉันเขียน คำถามคือถ้า "drush up" ทำไม่ได้ถ้า drush สามารถทำได้
Berdir

8

ในการสร้างgzipped mysql ด้วย drush :

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

อัปเดตจากความคิดเห็นของ wranvaud: หากคุณไม่ระบุไฟล์ผลลัพธ์ไฟล์นั้นจะถูกเก็บไว้ในโฟลเดอร์โฮมของคุณภายใต้: ~/drush-backups/<db_name>/<timestamp>/<database_file>.sql.gzมิฉะนั้นคุณสามารถระบุ --result-file = '~ / Documents /'


1
หากคุณไม่ระบุไฟล์ผลลัพธ์ไฟล์นั้นจะถูกเก็บไว้ในโฟลเดอร์โฮมของคุณภายใต้ ~ / drush-backups / <db_name> / <timestamp> / <database_file> .sql.gz มิฉะนั้นคุณสามารถระบุได้--result-file='~/Documents/<my_backups_folder>'
wranvaud


2

นี่เป็นโซลูชันสคริปต์ทุบตีเพื่อสำรองและคืนค่าจากบรรทัดคำสั่งด้วยdrushและAcquia-Drupal :

  • หมายเหตุ:คุณต้องเปลี่ยน basepath, sitename และ drushpath ในสคริปต์ทั้งสองเพื่อให้เหมาะกับความต้องการของคุณ
  • หมายเหตุ 2:สคริปต์สำรองจะสร้าง. tar ที่มีไฟล์ไซต์ของคุณพร้อมด้วยไฟล์ data.sql ที่อธิบายฐานข้อมูลของคุณ
  • Note3:สคริปต์คืนค่าจะเลือกไฟล์สำรอง. tar ล่าสุดที่สร้างโดยสคริปต์สำรอง

คำแนะนำ

1) ค้นหาเส้นทาง drush (drush รวมอยู่ใน acquia) ในกรณีของฉัน (drushpath = "/ Applications / acquia-drupal / drush")

2) สร้างไฟล์backup_ mysiteและไฟล์ restore_ mysiteและรวมไว้ในพา ธ โฟลเดอร์ bin ของคุณ (เช่น: / usr / local / bin)

3) แก้ไข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) แก้ไข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

นี่เป็นวิธีที่ดีที่สุดในการสำรองเว็บไซต์

1

ตอนนี้มันง่ายมากกับ Drush 5

“ หมายเหตุ: Drush 5 แนะนำคำสั่งการเก็บถาวรการถ่ายโอนข้อมูลและเรียกคืนการเก็บถาวรซึ่งช่วยให้คุณสามารถสำรองข้อมูลรหัสไฟล์และฐานข้อมูลของคุณลงในไฟล์เดียวได้”

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.