Guest User

Untitled

a guest
Jan 23rd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.39 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. function readlink_f () { X_=`pwd`; cd $1 && echo `pwd` && cd $X_; }
  4.  
  5. _SCRIPT_RELATIVE_PATH="scripts/auxiliar/recreate_db_for_tests.sh"
  6.  
  7. _DB=$1
  8. _DBDUMP=$2
  9. _VERSION=$3
  10. _PORTAL_PATH=$(readlink_f $0 | sed -e "s,${_SCRIPT_RELATIVE_PATH},,")
  11. _VERSION_UPDATE_DIR="${_PORTAL_PATH}scripts/updates/$_VERSION"
  12.  
  13. if [[ "$_DB" == "sisweb" ]];
  14. then
  15. echo -e "YOU ARE INSANE TRYING TO DROP/CREATE PRODUCTION DB!?!!?!?!?!? DO IT MANUALLY."
  16. exit 1
  17. exit 1
  18. exit 1
  19. fi
  20.  
  21. export PYTHONPATH="$(readlink -f $(dirname $0)/../../):$(readlink -f $(dirname $0)/../../../)"
  22. BASEPATH="$(readlink -f $(dirname $0))"
  23. ROOTPATH="$(readlink -f $(dirname $0)/../../)"
  24. export DJANGO_SETTINGS_MODULE="portal.settings"
  25.  
  26. # need to force python2.6 because way that we installed python 2.6 in centos
  27. 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']);")
  28. export DBUSER=$(echo $DATA | awk -F'|' '{print $1}')
  29. export DBPASS=$(echo $DATA | awk -F'|' '{print $2}')
  30. export DBNAME=$(echo $DATA | awk -F'|' '{print $3}')
  31. echo "'$DBUSER'"
  32. echo "'$DBPASS'"
  33.  
  34. export _PASSPARAM=""
  35. [[ -n "$DBPASS" ]] && export _PASSPARAM="-p\"$DBPASS\""
  36.  
  37. echo "'$_PASSPARAM'"
  38.  
  39. _ERRORS=0
  40.  
  41. [[ -n "$_DB" ]] || _ERRORS=1
  42. [[ -n "$_DBDUMP" ]] || _ERRORS=1
  43. #[[ -n "$_VERSION" ]] || _ERRORS=1
  44.  
  45. [[ "$_ERRORS" -eq "1" ]] && echo -e "$(basename $0): You should use $0 <dbname> <dbdump_file> [<update_scripts_dirname>]" && exit 1
  46.  
  47. echo -e "PORTAL PATH: $_PORTAL_PATH"
  48. echo -e "DBNAME: $_DB"
  49. if [[ -f "$_DBDUMP" ]];
  50. then
  51. echo -e "DBDUMP: $_DBDUMP"
  52. else
  53. echo -e "DBDUMP_FILE $_DBDUMP doesn't exist!"
  54. _ERRORS=1
  55. fi
  56.  
  57. if [[ -n "$_VERSION" ]];
  58. then
  59. if [[ -d "$_VERSION_UPDATE_DIR" ]];
  60. then
  61. echo -e "VERSION UPDATE DIR: $_VERSION_UPDATE_DIR"
  62. else
  63. echo -e "UPDATE_SCRIPTS_DIR $_VERSION_UPDATE_DIR doesn't exist!"
  64. fi
  65. fi
  66.  
  67. if [[ "$_ERRORS" -eq "1" ]];
  68. then
  69. echo -e "\nFix the errors first!"
  70. exit 1
  71. fi
  72.  
  73. _POPULATED=0
  74.  
  75. mysql -u $DBUSER $_PASSPARAM -v -e "drop database $_DB";
  76. mysql -u $DBUSER $_PASSPARAM -v -e "create database $_DB";
  77.  
  78. if [[ "$?" -eq "0" ]]
  79. then
  80. [[ "${_DBDUMP:(-7)}" = "sql.bz2" ]] && bzcat $_DBDUMP | mysql -u $DBUSER $_PASSPARAM $_DB && _POPULATED=1
  81. [[ "${_DBDUMP:(-3)}" = "sql" ]] && cat $_DBDUMP | mysql -u $DBUSER $_PASSPARAM $_DB && _POPULATED=1
  82. [[ $_POPULATED -eq 1 ]] && echo -e "\nPopulated $_DB with $_DBDUMP."
  83. else
  84. echo -e "Failed on create db"
  85. exit 1
  86. fi
  87.  
  88. [[ $_POPULATED -eq 0 ]] && echo -e "\nPopulation of DB $_DB with $_DBDUMP failed!" && exit 1
  89.  
  90.  
  91. if [[ -z $_VERSION ]];
  92. then
  93. echo -e "Any scripts to run..." && exit 0
  94. else
  95. echo -e "\nRunning executable update scripts at $_VERSION_UPDATE_DIR ..."
  96. chmod +x ${_VERSION_UPDATE_DIR}/{0,1}*.{sh,py} &>/dev/null
  97. for script in $(ls -1 $_VERSION_UPDATE_DIR/*.{py,sh} 2>/dev/null| sort);
  98. do
  99. _RUN=0
  100. _FAIL=0
  101. [[ -f $script ]] && [[ -x $script ]] && _RUN=1
  102. if [[ $_RUN -eq 1 ]];
  103. then
  104. echo -e "\n\nRunning $script ..."
  105. sleep 1
  106. $script || _FAIL=1
  107. fi
  108. [[ $_FAIL -eq 1 ]] && echo -e "\n\n\nFailed at $script!" && exit 1
  109. done
  110. fi
Add Comment
Please, Sign In to add comment