Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- function readlink_f () { X_=`pwd`; cd $1 && echo `pwd` && cd $X_; }
- _SCRIPT_RELATIVE_PATH="scripts/auxiliar/recreate_db_for_tests.sh"
- _DB=$1
- _DBDUMP=$2
- _VERSION=$3
- _PORTAL_PATH=$(readlink_f $0 | sed -e "s,${_SCRIPT_RELATIVE_PATH},,")
- _VERSION_UPDATE_DIR="${_PORTAL_PATH}scripts/updates/$_VERSION"
- if [[ "$_DB" == "sisweb" ]];
- then
- echo -e "YOU ARE INSANE TRYING TO DROP/CREATE PRODUCTION DB!?!!?!?!?!? DO IT MANUALLY."
- exit 1
- exit 1
- exit 1
- fi
- export PYTHONPATH="$(readlink -f $(dirname $0)/../../):$(readlink -f $(dirname $0)/../../../)"
- BASEPATH="$(readlink -f $(dirname $0))"
- ROOTPATH="$(readlink -f $(dirname $0)/../../)"
- export DJANGO_SETTINGS_MODULE="portal.settings"
- # need to force python2.6 because way that we installed python 2.6 in centos
- export DATA=$(python -c "from django.conf import settings;import os,sys; print \"%s|%s|%s\" % (settings.DATABASES['default']['USER'],settings.DATABASES['default']['PASSWORD'],settings.DATABASES['default']['NAME']);")
- export DBUSER=$(echo $DATA | awk -F'|' '{print $1}')
- export DBPASS=$(echo $DATA | awk -F'|' '{print $2}')
- export DBNAME=$(echo $DATA | awk -F'|' '{print $3}')
- echo "'$DBUSER'"
- echo "'$DBPASS'"
- export _PASSPARAM=""
- [[ -n "$DBPASS" ]] && export _PASSPARAM="-p\"$DBPASS\""
- echo "'$_PASSPARAM'"
- _ERRORS=0
- [[ -n "$_DB" ]] || _ERRORS=1
- [[ -n "$_DBDUMP" ]] || _ERRORS=1
- #[[ -n "$_VERSION" ]] || _ERRORS=1
- [[ "$_ERRORS" -eq "1" ]] && echo -e "$(basename $0): You should use $0 <dbname> <dbdump_file> [<update_scripts_dirname>]" && exit 1
- echo -e "PORTAL PATH: $_PORTAL_PATH"
- echo -e "DBNAME: $_DB"
- if [[ -f "$_DBDUMP" ]];
- then
- echo -e "DBDUMP: $_DBDUMP"
- else
- echo -e "DBDUMP_FILE $_DBDUMP doesn't exist!"
- _ERRORS=1
- fi
- if [[ -n "$_VERSION" ]];
- then
- if [[ -d "$_VERSION_UPDATE_DIR" ]];
- then
- echo -e "VERSION UPDATE DIR: $_VERSION_UPDATE_DIR"
- else
- echo -e "UPDATE_SCRIPTS_DIR $_VERSION_UPDATE_DIR doesn't exist!"
- fi
- fi
- if [[ "$_ERRORS" -eq "1" ]];
- then
- echo -e "\nFix the errors first!"
- exit 1
- fi
- _POPULATED=0
- mysql -u $DBUSER $_PASSPARAM -v -e "drop database $_DB";
- mysql -u $DBUSER $_PASSPARAM -v -e "create database $_DB";
- if [[ "$?" -eq "0" ]]
- then
- [[ "${_DBDUMP:(-7)}" = "sql.bz2" ]] && bzcat $_DBDUMP | mysql -u $DBUSER $_PASSPARAM $_DB && _POPULATED=1
- [[ "${_DBDUMP:(-3)}" = "sql" ]] && cat $_DBDUMP | mysql -u $DBUSER $_PASSPARAM $_DB && _POPULATED=1
- [[ $_POPULATED -eq 1 ]] && echo -e "\nPopulated $_DB with $_DBDUMP."
- else
- echo -e "Failed on create db"
- exit 1
- fi
- [[ $_POPULATED -eq 0 ]] && echo -e "\nPopulation of DB $_DB with $_DBDUMP failed!" && exit 1
- if [[ -z $_VERSION ]];
- then
- echo -e "Any scripts to run..." && exit 0
- else
- echo -e "\nRunning executable update scripts at $_VERSION_UPDATE_DIR ..."
- chmod +x ${_VERSION_UPDATE_DIR}/{0,1}*.{sh,py} &>/dev/null
- for script in $(ls -1 $_VERSION_UPDATE_DIR/*.{py,sh} 2>/dev/null| sort);
- do
- _RUN=0
- _FAIL=0
- [[ -f $script ]] && [[ -x $script ]] && _RUN=1
- if [[ $_RUN -eq 1 ]];
- then
- echo -e "\n\nRunning $script ..."
- sleep 1
- $script || _FAIL=1
- fi
- [[ $_FAIL -eq 1 ]] && echo -e "\n\n\nFailed at $script!" && exit 1
- done
- fi
Add Comment
Please, Sign In to add comment