Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env bash
- # Run from magento root directory and specify file with tables names as a parameter
- CONFIG_FILE="./app/etc/local.xml"
- TMP_FILE="./var/.tmp.local.xml"
- DUMP_STRING=""
- if [ ! -f "$CONFIG_FILE" ]; then
- echo "$CONFIG_FILE does not exist"; exit;
- fi;
- if ! [ -n "${1}" ]
- then echo "Filename with tables for cleaning is required!"; exit;
- fi;
- sed -ne '/default_setup/,/\/default_setup/p' $CONFIG_FILE > $TMP_FILE
- function getParam() {
- RETVAL=$(grep -Eoh "<$1>(<!\[CDATA\[)?(.*)(\]\]>)?<\/$1>" $TMP_FILE | sed "s#<$1><!\[CDATA\[##g;s#\]\]><\/$1>##g")
- if [[ "$2" == "sanitise" ]]; then
- RETVAL=$(echo "$RETVAL" | sed 's/"/\\\"/g')
- fi;
- echo -e "$RETVAL";
- }
- DBHOST=$(getParam "host")
- DBUSER=$(getParam "username")
- DBPASS=$(getParam "password" "sanitise" )
- DBNAME=$(getParam "dbname")
- TABLE_PREFIX=$(getParam "table_prefix")
- [ -f $TMP_FILE ] && rm $TMP_FILE
- cat <<EOT
- #######################################
- STARTING CLEANING DB ${DBNAME}...
- #######################################
- EOT
- count=0;
- while read table
- do
- mysql -u ${DBUSER} -p"${DBPASS}" --force << EOL
- use ${DBNAME};
- set FOREIGN_KEY_CHECKS = 0;
- truncate ${TABLE_PREFIX}${table};
- alter table ${TABLE_PREFIX}${table} AUTO_INCREMENT=1;
- set FOREIGN_KEY_CHECKS = 1;
- EOL
- let "count++";
- echo "${count}) ${TABLE_PREFIX}${table} truncated";
- done < ${1};
- cat <<EOT
- #######################################
- DB ${DBNAME} CLEANING COMPLETE!
- -- ${count} table(s) truncated --
- #######################################
- EOT
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement