#!/bin/sh PATH="/usr/bin:/bin:/usr/sbin:/sbin" DB_VERSION="@COMPONENT_DB_VERSION@" FILE_DB=".component.db" PATH_SYS_DB="/opt/dbspace/${FILE_DB}" PATH_USER_DB_DIR="/opt/dbspace/user" PATH_UPGRADE_SCRIPT_DIR="/etc/aul/component/upgrade/scripts" NAME_UPGRADE_SCRIPT="component_db_upgrade.sh" CURRENT_DB_VERSION=0 CompareDBVersion() { PATH_DB=$1 CURRENT_DB_VERSION=`sqlite3 ${PATH_DB} 'PRAGMA user_version;'` echo "## Compare DB version" echo " - Path: ${PATH_DB}" echo " - Current DB version: ${CURRENT_DB_VERSION}" if [ "${DB_VERSION}" -eq "${CURRENT_DB_VERSION}" ]; then echo " - DB version[${DB_VERSION}] is equal to current DB version[${CURRENT_DB_VERSION}]" return 0 elif [ "${DB_VERSION}" -gt "${CURRENT_DB_VERSION}" ]; then echo " - DB version[${DB_VERSION}] is greater than current DB version[${CURRENT_DB_VERSION}]" return 1 else echo " - DB version[${DB_VERSION}] is less than current DB version[${CURRENT_DB_VERSION}]" return 0 fi echo "## Compare DB version [Done]" } UpgradeDB() { PATH_DB=$1 VERSION=$2 echo "## UpgradeDB Path[${PATH_DB}] Version[${VERSION}]" i=${VERSION} while [ ${i} -le ${DB_VERSION} ]; do FILE_SCRIPT="${i}_${NAME_UPGRADE_SCRIPT}" PATH_SCRIPT="${PATH_UPGRADE_SCRIPT_DIR}/${FILE_SCRIPT}" if [ -e "${PATH_SCRIPT}" ]; then echo " - Script: ${PATH_SCRIPT}" ${PATH_SCRIPT} ${PATH_DB} fi i=`expr ${i} + 1` done echo "## UpgradeDB Path[${PATH_DB}] Version[${VERSION}] [Done]" } CheckAndUpgradeDB() { echo "### Check and upgrade DB" CompareDBVersion ${PATH_SYS_DB} RESULT=$? if [ "${RESULT}" -eq 1 ]; then VERSION=`expr ${CURRENT_DB_VERSION} + 1` UpgradeDB ${PATH_SYS_DB} ${VERSION} fi for DIR in ${PATH_USER_DB_DIR}/*; do echo " - Directory: ${DIR}" if [ -d "${DIR}" ]; then PATH_DB="${DIR}/${FILE_DB}" CompareDBVersion ${PATH_DB} RESULT=$? if [ "${RESULT}" -eq 1 ]; then VERSION=`expr ${CURRENT_DB_VERSION} + 1` UpgradeDB ${PATH_DB} ${VERSION} fi fi done echo "### Check and upgrade DB [Done]" } echo "#### Upgrade component db ####" CheckAndUpgradeDB echo "#### Upgrade component db [Done] ####"