87 lines
2.6 KiB
Bash
87 lines
2.6 KiB
Bash
#! /bin/bash
|
|
###########################################
|
|
#
|
|
###########################################
|
|
|
|
# constants
|
|
baseDir=$(cd `dirname "$0"`;pwd)
|
|
source $baseDir/utils.sh
|
|
MYSQL_WRITEMODE_IP=`parse_host ${SPRING_DATASOURCE_URL}`
|
|
MYSQL_WRITEMODE_PORT=`parse_port ${SPRING_DATASOURCE_URL}`
|
|
CONTACT_CENTER_DB=`parse_dbname ${SPRING_DATASOURCE_URL}`
|
|
CONTACT_CENTER_WAR=/opt/cskefu/contact-center.war
|
|
MYSQL_SETUP_CREATE_DB=001.mysql-create-db.sql
|
|
MYSQL_SETUP_CREATE_SCHEMAS=002.mysql-create-schemas.sql
|
|
|
|
# functions
|
|
function import_db(){
|
|
if [ ! -f $1 ]; then exit 1; fi
|
|
println "run MySQL DB initialize script ..."
|
|
mysql -u ${SPRING_DATASOURCE_USERNAME} \
|
|
-h ${MYSQL_WRITEMODE_IP} \
|
|
-P ${MYSQL_WRITEMODE_PORT} -p${SPRING_DATASOURCE_PASSWORD} \
|
|
< $1
|
|
|
|
# verify status
|
|
if [ ! $? -eq 0 ]; then
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
function init_db(){
|
|
println "extract SQL script ..."
|
|
if [ -f $CONTACT_CENTER_WAR ]; then
|
|
cd /tmp
|
|
if [ -d ROOT ]; then
|
|
rm -rf ROOT
|
|
fi
|
|
|
|
unzip -q $CONTACT_CENTER_WAR -d ROOT
|
|
if [ -f /tmp/ROOT/$MYSQL_SETUP_CREATE_SCHEMAS ]; then
|
|
println "start to import database ..."
|
|
cat /tmp/ROOT/$MYSQL_SETUP_CREATE_DB > /tmp/ROOT/db_setup.sql
|
|
echo "" >> /tmp/ROOT/db_setup.sql
|
|
cat /tmp/ROOT/$MYSQL_SETUP_CREATE_SCHEMAS >> /tmp/ROOT/db_setup.sql
|
|
|
|
import_db /tmp/ROOT/db_setup.sql
|
|
# verify status
|
|
if [ ! $? -eq 0 ]; then
|
|
rm /tmp/ROOT/db_setup.sql
|
|
exit 1
|
|
fi
|
|
rm -rf /tmp/ROOT
|
|
else
|
|
println "SQL script not exist."
|
|
exit 1
|
|
fi
|
|
else
|
|
println "War file not exist."
|
|
fi
|
|
}
|
|
|
|
# main
|
|
[ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return
|
|
println "[setup] connecting to $MYSQL_WRITEMODE_IP:$MYSQL_WRITEMODE_PORT/$CONTACT_CENTER_DB with $SPRING_DATASOURCE_USERNAME/****"
|
|
|
|
## wait for database connection ...
|
|
while ! mysqladmin --user=${SPRING_DATASOURCE_USERNAME} --password=${SPRING_DATASOURCE_PASSWORD} --host=${MYSQL_WRITEMODE_IP} --port=${MYSQL_WRITEMODE_PORT} ping --silent &> /dev/null ; do
|
|
echo "Waiting for database connection..."
|
|
sleep 2
|
|
done
|
|
|
|
# check if database exist, if not, create it.
|
|
mysqlshow -h ${MYSQL_WRITEMODE_IP} \
|
|
-P ${MYSQL_WRITEMODE_PORT} \
|
|
--user=${SPRING_DATASOURCE_USERNAME} \
|
|
--password=${SPRING_DATASOURCE_PASSWORD} \
|
|
${CONTACT_CENTER_DB} > /dev/null 2>&1 && exit 0;
|
|
|
|
# not exist
|
|
init_db
|
|
|
|
# verify status
|
|
if [ ! $? -eq 0 ]; then
|
|
println "DB status check failed."
|
|
exit 1
|
|
fi
|