diff --git a/contact-center/assets/mysql.upgrade.db.sh b/contact-center/assets/mysql.upgrade.db.sh index 0b8a63b6..ec4a78dd 100755 --- a/contact-center/assets/mysql.upgrade.db.sh +++ b/contact-center/assets/mysql.upgrade.db.sh @@ -10,14 +10,15 @@ 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/chatopera/contact-center.war -UPGRADE_DB_SCRIPT_DIR=/tmp/ROOT/upgrade +APP_WAR_EXTRACTED=/tmp/ROOT +UPGRADE_DB_SCRIPT_DIR=$APP_WAR_EXTRACTED/upgrade println "[upgrade] connecting to $MYSQL_WRITEMODE_IP:$MYSQL_WRITEMODE_PORT/$CONTACT_CENTER_DB with $SPRING_DATASOURCE_USERNAME/****" # functions function upgrade_db(){ if [ ! -f $1 ]; then exit 1; fi - println "run MySQL DB upgrade script" $1 "..." + println "[upgrade] run MySQL DB upgrade script" $1 "..." mysql -u ${SPRING_DATASOURCE_USERNAME} \ -h ${MYSQL_WRITEMODE_IP} \ -P ${MYSQL_WRITEMODE_PORT} -p${SPRING_DATASOURCE_PASSWORD} \ @@ -33,23 +34,11 @@ function extract_war(){ println "extract SQL script ..." if [ -f $CONTACT_CENTER_WAR ]; then cd /tmp - if [ -d ROOT ]; then - rm -rf ROOT + if [ -d $APP_WAR_EXTRACTED ]; then + rm -rf $APP_WAR_EXTRACTED fi unzip -q $CONTACT_CENTER_WAR -d ROOT - if [ -f /tmp/ROOT/$MYSQL_SCRIPT_NAME ]; then - println "start to import database ..." - import_db /tmp/ROOT/$MYSQL_SCRIPT_NAME - # verify status - if [ ! $? -eq 0 ]; then - exit 1 - fi - rm -rf /tmp/ROOT - else - println "SQL script not exist." - exit 1 - fi else println "War file not exist." fi @@ -57,9 +46,14 @@ function extract_war(){ # main [ -z "${BASH_SOURCE[0]}" -o "${BASH_SOURCE[0]}" = "$0" ] || return +## check upgrade footprint +if [ -f /opt/chatopera/upgrade.his ]; then + echo "[upgrade] upgrade has been done with previous start." + exit 0 +fi ## check root dir -if [ ! -d /tmp/ROOT ]; then +if [ ! -d $APP_WAR_EXTRACTED ]; then extract_war fi @@ -74,4 +68,9 @@ if [ -d $UPGRADE_DB_SCRIPT_DIR ]; then exit 1 fi done +fi + +## touch upgrade footprint +if [ ! -f /opt/chatopera/upgrade.his ]; then + touch /opt/chatopera/upgrade.his fi \ No newline at end of file