क्या ड्रश अप एक डेटाबेस बैकअप / डंप करता है?


13

क्या रनिंग drush upएक डेटाबेस बैकअप है? परीक्षण से, ऐसा लगता है कि यह नहीं है। क्या मुझे drush upअद्यतन करने से पहले एक अलग डेटाबेस बैकअप करना चाहिए ?


जवाबों:


7

नहीं, यह नहीं है। यह केवल वर्तमान मॉड्यूल निर्देशिकाओं का बैकअप बनाता है, इससे पहले कि यह उन्हें बदल दे।

एक sql डंप बनाने के लिए, का उपयोग करें

drush sql-dump > filename.sql.

लेकिन अपने वेबरूट के बाहर फाइल को स्थानांतरित करना याद रखें।


मैं लोगों को आपकी वेबसाइट रूट के बाहर एक डंप करने के लिए याद दिलाना चाहूंगा; इसलिए हैकर्स दूर रहेंगे।
चिरसली २ ch

यह "स्वीकृत" उत्तर सही नहीं है। Drush वास्तव में डेटाबेस का एक डंप प्रदान करता है: "drush sql- dip
sea26.2

उम। उत्तर को फिर से पढ़ने का प्रयास करें। यह सब, केवल पहला वाक्य नहीं है। क्योंकि ऐसा ही मैंने लिखा है। सवाल यह था कि क्या "ड्रश अप" ऐसा करता है, न कि अगर ड्रश कर सकता है।
बर्दिर

8

शराबी के साथ gzipped mysql डंप बनाने के लिए :

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>'
wavaud

5

यदि आपके पास बैकअप और माइग्रेट मॉड्यूल मॉड्यूल स्थापित है, तो आप इसे Drush से कॉल कर सकते हैं

$ drush bam-backup


ड्रश मूल रूप से एक डेटाबेस डंप का समर्थन करता है, एक अतिरिक्त मॉड्यूल की आवश्यकता के बिना, ऊपर देखें
wiifm

2

यह ड्रश और एक्विआ -ड्रुपल के साथ कमांड लाइन से बैकअप और रीस्टोर के लिए एक बैश स्क्रिप्ट समाधान है :

  • नोट: आपको केवल अपनी आवश्यकताओं को पूरा करने के लिए दोनों लिपियों में बेसपेथ, साइटनेम और शायद ड्रुशपथ को बदलना होगा
  • नोट 2: बैकअप स्क्रिप्ट आपकी साइट फ़ाइलों के साथ एक .tar बनाएगी और आपके डेटाबेस का वर्णन करने वाली data.sql फ़ाइल बनाएगी
  • नोट 3: पुनर्स्थापना स्क्रिप्ट बैकअप स्क्रिप्ट द्वारा बनाई गई अंतिम .tar बैकअप फ़ाइल को चुनेगी

निर्देश

1) ड्रश पथ का पता लगाएं (drush acquia में शामिल है), मेरे मामले में (drushpath = "/ Applications / acquia-drupal / drush")

2) एक backup_ बनाएं mysite फाइल और एक restore_ mysite फ़ाइल और उन्हें अपने बिन फ़ोल्डर पथ में शामिल हैं (उदाहरण के लिए: / usr / स्थानीय / 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) पुनर्स्थापना_ 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-सिंक का भी उपयोग कर सकते हैं।

$ drush sql-sync -v @site1 @site2

किसी साइट का बैकअप लेने का यह सबसे अच्छा तरीका है।

1

Drush 5 के साथ अब यह बहुत आसान है

"नोट: Drush 5 ने संग्रह-डंप और संग्रह-पुनर्स्थापना आदेशों की शुरुआत की, जो आपको एक ही फ़ाइल में अपने कोड, फ़ाइलों और डेटाबेस का बैकअप लेने की अनुमति देते हैं।"

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.