#!/bin/sh

# This script should be excuted from the EHS400 changeover script
# The purpose of this script is to migrate the databases during a software update
# Ordinarily this would not need to do anything but copy the database files, howvever if the
# update contains changes to the database schema then this migration would be necessary.

export PATH="$PATH:/usr/bin:/bin:/sbin:/usr/sbin:/mnt/apps/bin"

$(type sqlite3 > /dev/null)
if [ $? -ne 0 ]
then
  # return error 
  echo "cannot exec sqlite3!"
  exit $?
fi

if [ -f /mnt/backup/data/db/merged_carddb ]
then
  rm /mnt/backup/data/db/merged_carddb
fi
sqlite3 '/mnt/backup/data/db/carddb' .schema | sqlite3 '/mnt/backup/data/db/merged_carddb'

# merge the carddb tables
sqlite3 '/mnt/backup/data/db/merged_carddb' < /tmp/sql/merge_carddb.sql

# rename databases
mv /mnt/backup/data/db/carddb /mnt/backup/data/db/carddb-0
mv /mnt/backup/data/db/merged_carddb /mnt/backup/data/db/carddb
sync

# create merged database files based off of new databases
if [ -f /mnt/backup/data/db/merged_vdb ]
then
  rm /mnt/backup/data/db/merged_vdb
fi
sqlite3 '/mnt/backup/data/db/vdb' .schema | sqlite3 '/mnt/backup/data/db/merged_vdb'

# merge the vdb tables
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_parameters.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_resources.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_card_formats.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_readers.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_alert_actions.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_special_days.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_schedules.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_interfaces.sql
sqlite3 '/mnt/backup/data/db/merged_vdb' < /tmp/sql/merge_vdb_roles.sql


# rename database files
mv /mnt/backup/data/db/vdb /mnt/backup/data/db/vdb-0
mv /mnt/backup/data/db/merged_vdb /mnt/backup/data/db/vdb
sync

# return success
echo "migrate_databases exit 0"
exit 0
