EDDN/scripts/eddn-restore-db-data

60 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Add ' -x' above to debug
#
# Use a dump to replace data in the given environment's database
###########################################################################
# Exit codes
###########################################################################
EXIT_CONFIG_MISSING=1
EXIT_CL_ARGS=3
###########################################################################
###########################################################################
# Functions
###########################################################################
##################################################
# Print usage information
##################################################
usage() {
echo "Usage: $(basename $0) ( live | beta | dev ) <dump file name>" >&2
}
##################################################
###########################################################################
if [ -z "${1}" ];
then
usage
echo "No EDDN environment specified." >&2
exit ${EXIT_CL_ARGS}
fi
EDDN_ENV="${1}"
if [ -z "${2}" ];
then
usage
echo "No database dump file name specified." >&2
exit ${EXIT_CL_ARGS}
fi
DBDUMP_FILE="${2}"
# Bring in some common configuration
if [ ! -f "${HOME}/.local/bin/eddn_${EDDN_ENV}_config" ];
then
echo "eddn_${EDDN_ENV}_config is missing from $(pwd)" >&2
exit ${EXIT_CONFIG_MISSING}
fi
. "${HOME}/.local/bin/eddn_${EDDN_ENV}_config"
# This relies on ~/.my.cnf containing the password
if [ "$(basename ${DBDUMP_FILE})" != "$(basename ${DBDUMP_FILE} .gz)" ];
then
gunzip -c - < "${DBDUMP_FILE}" | mysql -u eddn "eddn_${EDDN_ENV}"
else
mysql -u eddn "eddn_${EDDN_ENV}" < "${DBDUMP_FILE}"
fi
# vim: tabstop=2 shiftwidth=2 textwidth=0 wrapmargin=0 expandtab