Skip to content

Instantly share code, notes, and snippets.

@drushman
Forked from pvmchau/restore_script.sh
Created September 6, 2012 02:41
Show Gist options
  • Save drushman/3650182 to your computer and use it in GitHub Desktop.
Save drushman/3650182 to your computer and use it in GitHub Desktop.
#!/bin/sh
# Configuration:
DRUPAL_ROOT=/home/langgo/demo/langgo
DRUPAL_DIR=$DRUPAL_ROOT/sites/langgo
DB_BACKUP_FILE="https://raw.github.com/gist/5f39454c80939a29d425/f2045d53d15d41f2f8cfbc8570dfdb243667fb76/test.sql"
DRUSH_MAKE_FILE="https://raw.github.com/gist/b84fd6235b58779398c5/3324cbb4faa4d3c39a3af6b26ea7cf418c9ab00f/test.make"
ROOT_USER_NAME="root"
ROOT_USER_PASS="root"
DB_NAME="langgo_db"
# Create site rootx
rm -rf $DRUPAL_ROOT
mkdir -p $DRUPAL_ROOT/Backupfile
cd $DRUPAL_ROOT
# Make site from makefile
wget $DRUSH_MAKE_FILE --directory-prefix="Backupfile"
drush make Backupfile/*.make .
# Restore site db
mysql -u$ROOT_USER_NAME -p$ROOT_USER_PASS -e "CREATE DATABASE $DB_NAME;"
wget $DB_BACKUP_FILE --directory-prefix="Backupfile"
mysql -u$ROOT_USER_NAME -p$ROOT_USER_PASS $DB_NAME < Backupfile/*.sql
#drush sql-cli < "Backupfile/*.sql"
# Create settings.php file
mkdir $DRUPAL_DIR
cp sites/default/default.settings.php $DRUPAL_DIR/settings.php
DEFAULT_D6_SETTING_TEXT='mysql://username:password@localhost/databasename;'
SETTING_D6_TEXT="mysql://$ROOT_USER_NAME:$ROOT_USER_PASS@localhost/$DB_NAME"
for file in $(grep -il "$DEFAULT_D6_SETTING_TEXT" "$DRUPAL_DIR/settings.php")
do
sed -e "s/$DEFAULT_D6_SETTING_TEXT/$SETTING_D6_TEXT/ig" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
done
DEFAULT_D7_SETTING_TEXT='databases = array();'
SETTING_D7_TEXT="databases=array('default'=>array('default'=>array('database'=>'$DB_NAME','username'=>'$ROOT_USER_NAME','password'=>'$ROOT_USER_PASS','host'=>'localhost','port'=>'','driver'=>'mysql','prefix'=>'',),),);"
for file in $(grep -il "$DEFAULT_D7_SETTING_TEXT" "$DRUPAL_DIR/settings.php")
do
sed -e "s/$DEFAULT_D7_SETTING_TEXT/$SETTING_D7_TEXT/ig" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
done
# Remove backup file
rm -rf $DRUPAL_ROOT/Backupfile
mysql -u$ROOT_USER_NAME -p$ROOT_USER_PASS -e "DROP DATABASE $DB_NAME"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment