#!/bin/bash echo '-------' echo 'Starting Database Restore' echo '-------' #get Latest database backup # Unzip File # gzip -dk file.gz BACKUPDIR="/home/mab/databaseBackupSolidScribe" #DEVDBPASS="Crama!Lama*Jamma###88383!!!!!345345956245i" #DEVDBPASS="RootPass1234!" DEVDBPASS="ReallySecureRootPass123!" # LazaLinga&33Can't!Do!That34 cd $BACKUPDIR # -t sort by modification time, newest first # -A --almost-all, do not list implied . and .. LASTZIPPEDFILE=$(ls -At *.gz | head -n1) # -k keep file after unzip # -d Decompress # -v verbose echo "Unzipping $LASTZIPPEDFILE" gunzip -dkv $LASTZIPPEDFILE BACKUPFILE=$(ls -At *.sql | head -n1) #Fix to replace incompatible DB type echo "Updating table name in -> $BACKUPFILE" #sed -i $BACKUPFILE -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g' #Fix encoding for dev DB and exclude system tables sed -i 's/utf8mb4_0900_ai_ci/utf8mb4_general_ci/g' $BACKUPFILE sed -r '/INSERT INTO `(sys|mysql)`/d' $BACKUPFILE > $BACKUPFILE echo "Removing and syncing static files" rm -r /home/mab/ss/staticFiles/* rsync -e 'ssh -p 13328' -hazC --update mab@solidscribe.com:/home/mab/pi/staticFiles /home/mab/ss/ echo "Updating Database" mysql -u root --password="$DEVDBPASS" < $BACKUPFILE ## Optimize Database Tables # mysqlcheck --all-databases mysqlcheck --all-databases -o -u root --password="$DEVDBPASS" --silent # mysqlcheck --all-databases --auto-repair # mysqlcheck --all-databases --analyze # Fix an issues with DB after messing around with it mysql_upgrade -u root --password="$DEVDBPASS" #clean up extracted and modified SQL dumps rm *.sql echo '-------' echo "Applied Prod database to Dev. LastFile: $BACKUPFILE" echo '-------'