onlyoffice-docserver/images/onlyoffice-docserver/root/entrypoint.d/20-sql.sh

54 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
set -euo pipefail
function get_value(){
local KEY=$1
local VALUE=$(jq -r -s \
" .[0].services.CoAuthoring.sql * .[1].services.CoAuthoring.sql | .${KEY}" \
/etc/onlyoffice/documentserver/default.json \
/etc/onlyoffice/documentserver/production-linux.json)
echo ${VALUE}
}
export PGHOST=$(get_value "dbHost")
export DGPORT=$(get_value "dbport")
export PGDATABASE=$(get_value "dbName")
export PGUSER=$(get_value "dbUser")
export PGPASSWORD=$(get_value "dbPass")
function init_db(){
psql -f /var/www/onlyoffice/documentserver/server/schema/postgresql/createdb.sql
}
function reset_db(){
psql -f /var/www/onlyoffice/documentserver/server/schema/postgresql/removetbl.sql
}
function write_version(){
echo $(rpm -q onlyoffice-documentserver --qf "%{VERSION}-%{RELEASE}") > /data/onlyoffice.version
}
export PGHOST=$(get_value "dbHost")
export DGPORT=$(get_value "dbport")
export PGDATABASE=$(get_value "dbName")
export PGUSER=$(get_value "dbUser")
export PGPASSWORD=$(get_value "dbPass")
if [ ! -e "/data/onlyoffice.version" ]; then
echo "File /data/onlyoffice.version doesn't exist, initializing database"
init_db
write_version
else
PREVIOUS_VERSION=$(head -n 1 /data/onlyoffice.version)
CURRENT_VERSION=$(rpm -q onlyoffice-documentserver --qf "%{VERSION}-%{RELEASE}")
if [ "${CURRENT_VERSION}" != "${PREVIOUS_VERSION}" ]; then
echo "Running ${CURRENT_VERSION} while previous version was ${PREVIOUS_VERSION}. Reinitializing database"
reset_db
init_db
write_version
else
echo "Running ${CURRENT_VERSION}, same as previous version"
fi
fi