upgrade-mattermost.sh: add support for PostgreSQL database.

This commit is contained in:
Christoph 2024-09-23 23:06:52 +02:00
parent 2bdeadaa17
commit 66d3210184

View File

@ -218,6 +218,8 @@ DEFAULT_FQHN_HOSTNAME="$(hostname -f)"
DEFAULT_MATTERMOST_USER="mattermost"
DEFAULT_MATTERMOST_GROUP="mattermost"
DEFAULT_DB_TYPE="pgsql"
DEFAULT_MATTERMOST_BASE_INSTALL_PATH="/opt"
DEFAULT_MATTERMOST_TMP_DIR="/tmp"
@ -231,6 +233,9 @@ fi
[[ -n "$FQHN_HOSTNAME" ]] && DEFAULT_FQHN_HOSTNAME="$FQHN_HOSTNAME"
if [[ -z "$DB_TYPE" ]] ; then
fatal "Missing database type (DB_TYPE)!"
fi
if [[ -z "$DB_NAME" ]] ; then
fatal "Missing database name (DB_NAME)!"
fi
@ -404,12 +409,13 @@ do
done
if [[ -n "$MYSQL_CREDENTIAL_ARGS" ]] ; then
if [[ "$DB_TYPE" = "mysql" ]] ; then
if [[ -n "$MYSQL_CREDENTIAL_ARGS" ]] ; then
if ! $(mysql $MYSQL_CREDENTIAL_ARGS -N -s -e 'quit' > /dev/null 2>&1) ; then
fatal "Parameter MYSQL_CREDENTIAL_ARGS is given, but a connection to MySQL Service failed.!"
fi
USE_MYSQL_CREDENTIAL_ARGS=true
else
else
USE_MYSQL_CREDENTIAL_ARGS=false
_MYSQL_ROOT_PW=""
@ -437,6 +443,7 @@ else
fatal "MySQL seems not be running. Start MySQL Service and try installing mattermost again."
fi
done
fi
fi
@ -460,10 +467,18 @@ echo -e " Mattermost user...................: $MATTERMOST_USER"
echo -e " Mattermost group..................: $MATTERMOST_GROUP"
echo ""
echo ""
if $USE_MYSQL_CREDENTIAL_ARGS ; then
echo -e " MYSQL_CREDENTIAL_ARGS.............: $MYSQL_CREDENTIAL_ARGS"
if [[ "${DB_TYPE}" = "pgsql" ]] ; then
echo -e " Database Type.....................: PostgreSQL"
else
echo -e " Database Type.....................: MySQL"
fi
echo ""
if [[ "${DB_TYPE}" = "mysql" ]]; then
if $USE_MYSQL_CREDENTIAL_ARGS ; then
echo -e " MYSQL_CREDENTIAL_ARGS.............: $MYSQL_CREDENTIAL_ARGS"
else
echo -e " Root password MySQL...............: **"
fi
fi
echo ""
echo -e " Database Name.....................: $DB_NAME"
@ -586,9 +601,10 @@ else
fi
echononl "Backup mattermost database.."
mysqldump --login-path=local --opt $DB_NAME \
if [[ "${DB_TYPE}" = "mysql" ]]; then
mysqldump --login-path=local --opt $DB_NAME \
> ${MATTERMOST_BASE_INSTALL_PATH}/${DB_NAME}-${backup_date}.sql 2> $log_file
if [[ $? -ne 0 ]]; then
if [[ $? -ne 0 ]]; then
echo_failed
error "$(cat "$log_file")"
@ -600,8 +616,26 @@ if [[ $? -ne 0 ]]; then
read OK
done
[[ $OK = "yes" ]] || fatal "Stopped by user"
else
else
echo_ok
fi
else
pg_dump -U ${DB_USER} -F p -c ${DB_NAME} -f ${MATTERMOST_BASE_INSTALL_PATH}/${DB_NAME}-${backup_date}.sql 2> $log_file
if [[ $? -ne 0 ]]; then
echo_failed
error "$(cat "$log_file")"
echononl "continue anyway [yes/no]: "
read OK
OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')"
while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do
echononl "Wrong entry! - repeat [yes/no]: "
read OK
done
[[ $OK = "yes" ]] || fatal "Stopped by user"
else
echo_ok
fi
fi
echononl "Backup mattermost installation directory.."