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_USER="mattermost"
DEFAULT_MATTERMOST_GROUP="mattermost" DEFAULT_MATTERMOST_GROUP="mattermost"
DEFAULT_DB_TYPE="pgsql"
DEFAULT_MATTERMOST_BASE_INSTALL_PATH="/opt" DEFAULT_MATTERMOST_BASE_INSTALL_PATH="/opt"
DEFAULT_MATTERMOST_TMP_DIR="/tmp" DEFAULT_MATTERMOST_TMP_DIR="/tmp"
@ -231,6 +233,9 @@ fi
[[ -n "$FQHN_HOSTNAME" ]] && DEFAULT_FQHN_HOSTNAME="$FQHN_HOSTNAME" [[ -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 if [[ -z "$DB_NAME" ]] ; then
fatal "Missing database name (DB_NAME)!" fatal "Missing database name (DB_NAME)!"
fi fi
@ -404,12 +409,13 @@ do
done 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 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.!" fatal "Parameter MYSQL_CREDENTIAL_ARGS is given, but a connection to MySQL Service failed.!"
fi fi
USE_MYSQL_CREDENTIAL_ARGS=true USE_MYSQL_CREDENTIAL_ARGS=true
else else
USE_MYSQL_CREDENTIAL_ARGS=false USE_MYSQL_CREDENTIAL_ARGS=false
_MYSQL_ROOT_PW="" _MYSQL_ROOT_PW=""
@ -437,6 +443,7 @@ else
fatal "MySQL seems not be running. Start MySQL Service and try installing mattermost again." fatal "MySQL seems not be running. Start MySQL Service and try installing mattermost again."
fi fi
done done
fi
fi fi
@ -460,10 +467,18 @@ echo -e " Mattermost user...................: $MATTERMOST_USER"
echo -e " Mattermost group..................: $MATTERMOST_GROUP" echo -e " Mattermost group..................: $MATTERMOST_GROUP"
echo "" echo ""
echo "" echo ""
if $USE_MYSQL_CREDENTIAL_ARGS ; then if [[ "${DB_TYPE}" = "pgsql" ]] ; then
echo -e " MYSQL_CREDENTIAL_ARGS.............: $MYSQL_CREDENTIAL_ARGS" echo -e " Database Type.....................: PostgreSQL"
else 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...............: **" echo -e " Root password MySQL...............: **"
fi
fi fi
echo "" echo ""
echo -e " Database Name.....................: $DB_NAME" echo -e " Database Name.....................: $DB_NAME"
@ -586,9 +601,10 @@ else
fi fi
echononl "Backup mattermost database.." 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 > ${MATTERMOST_BASE_INSTALL_PATH}/${DB_NAME}-${backup_date}.sql 2> $log_file
if [[ $? -ne 0 ]]; then if [[ $? -ne 0 ]]; then
echo_failed echo_failed
error "$(cat "$log_file")" error "$(cat "$log_file")"
@ -600,8 +616,26 @@ if [[ $? -ne 0 ]]; then
read OK read OK
done done
[[ $OK = "yes" ]] || fatal "Stopped by user" [[ $OK = "yes" ]] || fatal "Stopped by user"
else else
echo_ok 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 fi
echononl "Backup mattermost installation directory.." echononl "Backup mattermost installation directory.."