Advertisement
Guest User

Untitled

a guest
May 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. # Run from magento root directory and specify file with tables names as a parameter
  3.  
  4. CONFIG_FILE="./app/etc/local.xml"
  5. TMP_FILE="./var/.tmp.local.xml"
  6. DUMP_STRING=""
  7.  
  8. if [ ! -f "$CONFIG_FILE" ]; then
  9. echo "$CONFIG_FILE does not exist"; exit;
  10. fi;
  11.  
  12. if ! [ -n "${1}" ]
  13. then echo "Filename with tables for cleaning is required!"; exit;
  14. fi;
  15.  
  16. sed -ne '/default_setup/,/\/default_setup/p' $CONFIG_FILE > $TMP_FILE
  17.  
  18. function getParam() {
  19. RETVAL=$(grep -Eoh "<$1>(<!\[CDATA\[)?(.*)(\]\]>)?<\/$1>" $TMP_FILE | sed "s#<$1><!\[CDATA\[##g;s#\]\]><\/$1>##g")
  20. if [[ "$2" == "sanitise" ]]; then
  21. RETVAL=$(echo "$RETVAL" | sed 's/"/\\\"/g')
  22. fi;
  23. echo -e "$RETVAL";
  24. }
  25.  
  26. DBHOST=$(getParam "host")
  27. DBUSER=$(getParam "username")
  28. DBPASS=$(getParam "password" "sanitise" )
  29. DBNAME=$(getParam "dbname")
  30. TABLE_PREFIX=$(getParam "table_prefix")
  31.  
  32. [ -f $TMP_FILE ] && rm $TMP_FILE
  33.  
  34. cat <<EOT
  35.  
  36. #######################################
  37.  
  38. STARTING CLEANING DB ${DBNAME}...
  39.  
  40. #######################################
  41.  
  42. EOT
  43.  
  44. count=0;
  45. while read table
  46. do
  47. mysql -u ${DBUSER} -p"${DBPASS}" --force << EOL
  48. use ${DBNAME};
  49. set FOREIGN_KEY_CHECKS = 0;
  50. truncate ${TABLE_PREFIX}${table};
  51. alter table ${TABLE_PREFIX}${table} AUTO_INCREMENT=1;
  52. set FOREIGN_KEY_CHECKS = 1;
  53. EOL
  54. let "count++";
  55. echo "${count}) ${TABLE_PREFIX}${table} truncated";
  56. done < ${1};
  57.  
  58. cat <<EOT
  59.  
  60. #######################################
  61.  
  62. DB ${DBNAME} CLEANING COMPLETE!
  63. -- ${count} table(s) truncated --
  64.  
  65. #######################################
  66.  
  67. EOT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement