Skip to content

Instantly share code, notes, and snippets.

@pvmchau
Forked from drushman/restore_script.sh
Created September 6, 2012 08:27
Show Gist options
  • Save pvmchau/3653040 to your computer and use it in GitHub Desktop.
Save pvmchau/3653040 to your computer and use it in GitHub Desktop.
#!/bin/sh
# Configuration:
DRUPAL_ROOT="$SITES_ROOT/$SITE_NAME_RESTORE"
DRUPAL_DIR="$SITES_ROOT/sites/$SITE_NAME_RESTORE"
GIT_REMOTE_DB="https://raw.github.com/gist/5f39454c80939a29d425/f2045d53d15d41f2f8cfbc8570dfdb243667fb76/test.sql"
DRUSH_MAKE_FILE="https://raw.github.com/gist/b84fd6235b58779398c5/3324cbb4faa4d3c39a3af6b26ea7cf418c9ab00f/test.make"
DB_URL="mysql://root:root@localhost/langgo_db_1;mysql://root:root@localhost/langgo_db_2"
ROOT_USER_NAME="root"
ROOT_USER_PASS="root"
# Create site root
rm -rf $DRUPAL_ROOT
mkdir -p $DRUPAL_ROOT/Backupfile
cd $DRUPAL_ROOT
# Restore site db
git clone $GIT_REMOTE_DB /Backupfile
OIFS=$IFS;
IFS=";";
DB_URLS=($DB_URL);
for ((i=0; i<${#DB_URLS[@]}; ++i));
do
URL="${DB_URLS[$i]}"
DB_NAME="${URL##*/}"
drush sql-cli --db-url="$URL" --skip-tables-key=common --result-file="$DRUPAL_ROOT/Backupfile/db_$DB_NAME.sql"
done
IFS=$OIFS;
#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
# Make site from makefile
wget $DRUSH_MAKE_FILE --directory-prefix="Backupfile"
drush make Backupfile/*.make .
# 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;'
DB_URL_SETTING_D6_TEXT="$DEFAULT_D6_SETTING_TEXT $DB_URL"
#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
sed -e "s/$DEFAULT_D6_SETTING_TEXT/$DB_URL_SETTING_D6_TEXT/ig" $file > /tmp/tempfile.tmp
mv /tmp/tempfile.tmp $file
done
DEFAULT_D7_SETTING_TEXT='databases = array();'
DB_URL_SETTING_D7_TEXT="$DEFAULT_D7_SETTING_TEXT $DB_URL"
#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
sed -e "s/$DEFAULT_D7_SETTING_TEXT/$DB_URL_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