mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
Implemented sql importing for db_assembler script
It includes a backup system that saves your day if you push the "red button" (importing bases on a production db)
This commit is contained in:
@@ -118,9 +118,9 @@ function assemble() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function run() {
|
function run() {
|
||||||
echo "===== STARTING PROCESS ====="
|
echo "===== STARTING ASSEMBLY PROCESS ====="
|
||||||
|
|
||||||
mkdir -p $OUTPUT_FOLDER
|
mkdir -p "$OUTPUT_FOLDER"
|
||||||
|
|
||||||
for db in ${DATABASES[@]}
|
for db in ${DATABASES[@]}
|
||||||
do
|
do
|
||||||
@@ -130,26 +130,143 @@ function run() {
|
|||||||
echo "===== DONE ====="
|
echo "===== DONE ====="
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function db_backup() {
|
||||||
|
echo "backing up $1"
|
||||||
|
|
||||||
|
database=${1,,}
|
||||||
|
|
||||||
|
uc=${database^^}
|
||||||
|
|
||||||
|
name="DB_"$uc"_CONF"
|
||||||
|
confs=${!name}
|
||||||
|
|
||||||
|
name="DB_"$uc"_NAME"
|
||||||
|
dbname=${!name}
|
||||||
|
|
||||||
|
eval $confs;
|
||||||
|
|
||||||
|
export MYSQL_PWD=$MYSQL_PASS
|
||||||
|
|
||||||
|
now=`date +%s`
|
||||||
|
|
||||||
|
"$DB_MYSQL_DUMP_EXEC" --opt --user="$MYSQL_USER" --host="$MYSQL_HOST" "$dbname" > "${BACKUP_FOLDER}${database}_backup_${now}.sql" && echo "done"
|
||||||
|
}
|
||||||
|
|
||||||
|
function db_import() {
|
||||||
|
echo "importing $1 - $2"
|
||||||
|
|
||||||
|
database=${1,,}
|
||||||
|
type=$2
|
||||||
|
|
||||||
|
uc=${database^^}
|
||||||
|
|
||||||
|
name="DB_"$uc"_CONF"
|
||||||
|
confs=${!name}
|
||||||
|
|
||||||
|
name="DB_"$uc"_NAME"
|
||||||
|
dbname=${!name}
|
||||||
|
|
||||||
|
eval $confs;
|
||||||
|
|
||||||
|
export MYSQL_PWD=$MYSQL_PASS
|
||||||
|
|
||||||
|
"$DB_MYSQL_EXEC" -h "$MYSQL_HOST" -u "$MYSQL_USER" "$dbname" < "${OUTPUT_FOLDER}${database}_${type}.sql"
|
||||||
|
}
|
||||||
|
|
||||||
|
function import () {
|
||||||
|
run $1 $2 $2
|
||||||
|
|
||||||
|
|
||||||
|
with_base=$1
|
||||||
|
with_updates=$2
|
||||||
|
with_custom=$3
|
||||||
|
|
||||||
|
#
|
||||||
|
# BACKUP
|
||||||
|
#
|
||||||
|
|
||||||
|
if [ $BACKUP_ENABLE = true ]; then
|
||||||
|
echo "===== STARTING BACKUP PROCESS ====="
|
||||||
|
mkdir -p "$BACKUP_FOLDER"
|
||||||
|
|
||||||
|
for db in ${DATABASES[@]}
|
||||||
|
do
|
||||||
|
db_backup "$db"
|
||||||
|
done
|
||||||
|
echo "===== DONE ====="
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "===== STARTING IMPORTING PROCESS ====="
|
||||||
|
#
|
||||||
|
# IMPORT
|
||||||
|
#
|
||||||
|
if [ $with_base = true ]; then
|
||||||
|
for db in ${DATABASES[@]}
|
||||||
|
do
|
||||||
|
db_import "$db" "base"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $with_updates = true ]; then
|
||||||
|
for db in ${DATABASES[@]}
|
||||||
|
do
|
||||||
|
db_import "$db" "update"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $with_custom = true ]; then
|
||||||
|
for db in ${DATABASES[@]}
|
||||||
|
do
|
||||||
|
db_import "$db" "custom"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "===== DONE ====="
|
||||||
|
}
|
||||||
|
|
||||||
|
while true
|
||||||
|
do
|
||||||
|
echo "===== DB ASSEMBLER MENU ====="
|
||||||
PS3='Please enter your choice: '
|
PS3='Please enter your choice: '
|
||||||
options=("Create ALL" "Create only bases" "Create only updates" "Create only customs" "Quit")
|
options=(
|
||||||
|
"Assemble ALL" "Assemble only bases" "Assemble only updates" "Assemble only customs"
|
||||||
|
"Quit"
|
||||||
|
"Assemble & import ALL" "Assemble & import only bases" "Assemble & import only updates" "Assemble & import only customs"
|
||||||
|
)
|
||||||
select opt in "${options[@]}"
|
select opt in "${options[@]}"
|
||||||
do
|
do
|
||||||
case $opt in
|
case $opt in
|
||||||
"Create ALL")
|
"Assemble ALL")
|
||||||
run true true true
|
run true true true
|
||||||
break #avoid loop
|
break
|
||||||
;;
|
;;
|
||||||
"Create only bases")
|
"Assemble only bases")
|
||||||
run true false false
|
run true false false
|
||||||
break #avoid loop
|
break
|
||||||
;;
|
;;
|
||||||
"Create only updates")
|
"Assemble only updates")
|
||||||
run false true false
|
run false true false
|
||||||
break #avoid loop
|
break
|
||||||
;;
|
;;
|
||||||
"Create only customs")
|
"Assemble only customs")
|
||||||
run false false true
|
run false false true
|
||||||
break #avoid loop
|
break
|
||||||
|
;;
|
||||||
|
"Assemble & import ALL")
|
||||||
|
import true true true
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Assemble & import only bases")
|
||||||
|
import true false false
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Assemble & import only updates")
|
||||||
|
import false true false
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
"Assemble & import only customs")
|
||||||
|
import false false true
|
||||||
|
break
|
||||||
;;
|
;;
|
||||||
"Quit")
|
"Quit")
|
||||||
break
|
break
|
||||||
@@ -157,3 +274,4 @@ do
|
|||||||
*) echo invalid option;;
|
*) echo invalid option;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
done
|
||||||
|
|||||||
@@ -55,6 +55,15 @@ DATABASES=(
|
|||||||
|
|
||||||
OUTPUT_FOLDER="output/"
|
OUTPUT_FOLDER="output/"
|
||||||
|
|
||||||
|
#
|
||||||
|
# Enable following flag
|
||||||
|
# if you want backup your db
|
||||||
|
# before import sql with db_assembler
|
||||||
|
#
|
||||||
|
BACKUP_ENABLE=true
|
||||||
|
|
||||||
|
BACKUP_FOLDER="backup/"
|
||||||
|
|
||||||
# FULL DB
|
# FULL DB
|
||||||
DB_CHARACTERS_PATHS=(
|
DB_CHARACTERS_PATHS=(
|
||||||
$SRCPATH"/data/sql/base/db_characters"
|
$SRCPATH"/data/sql/base/db_characters"
|
||||||
@@ -71,14 +80,17 @@ DB_WORLD_PATHS=(
|
|||||||
# UPDATES
|
# UPDATES
|
||||||
DB_CHARACTERS_UPDATE_PATHS=(
|
DB_CHARACTERS_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/db_characters/"
|
$SRCPATH"/data/sql/updates/db_characters/"
|
||||||
|
$SRCPATH"/data/sql/updates/pending_db_characters/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_AUTH_UPDATE_PATHS=(
|
DB_AUTH_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/db_auth/"
|
$SRCPATH"/data/sql/updates/db_auth/"
|
||||||
|
$SRCPATH"/data/sql/updates/pending_db_auth/"
|
||||||
)
|
)
|
||||||
|
|
||||||
DB_WORLD_UPDATE_PATHS=(
|
DB_WORLD_UPDATE_PATHS=(
|
||||||
$SRCPATH"/data/sql/updates/db_world/"
|
$SRCPATH"/data/sql/updates/db_world/"
|
||||||
|
$SRCPATH"/data/sql/updates/pending_db_world/"
|
||||||
)
|
)
|
||||||
|
|
||||||
# CUSTOM
|
# CUSTOM
|
||||||
@@ -100,7 +112,15 @@ DB_WORLD_CUSTOM_PATHS=(
|
|||||||
#
|
#
|
||||||
##############################################
|
##############################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# "C:/Program Files/MySQL/MySQL Server 5.6/bin/mysql.exe"
|
||||||
|
# "/usr/bin/mysql"
|
||||||
|
# "mysql"
|
||||||
|
#
|
||||||
|
|
||||||
|
DB_MYSQL_EXEC="mysql"
|
||||||
|
DB_MYSQL_DUMP_EXEC="mysqldump"
|
||||||
|
|
||||||
DB_CHARACTERS_CONF="MYSQL_USER='root'; \
|
DB_CHARACTERS_CONF="MYSQL_USER='root'; \
|
||||||
MYSQL_PASS='root'; \
|
MYSQL_PASS='root'; \
|
||||||
|
|||||||
Reference in New Issue
Block a user