mirror of
https://github.com/alexbelgium/hassio-addons.git
synced 2026-06-04 14:54:07 +02:00
Update 99-run.sh
This commit is contained in:
@@ -104,30 +104,33 @@ wait_postgres_ready() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bootstrap_internal_db() {
|
bootstrap_internal_db() {
|
||||||
if $USE_EXTERNAL_DB; then
|
if $USE_EXTERNAL_DB; then
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
bashio::log.info "Creating role/database if needed..."
|
|
||||||
|
|
||||||
# Create role if it doesn't exist
|
bashio::log.info "Creating role/database if needed..."
|
||||||
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres <<SQL
|
|
||||||
DO \$\$
|
|
||||||
BEGIN
|
|
||||||
IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = '${DB_USER}') THEN
|
|
||||||
EXECUTE 'CREATE ROLE ${DB_USER} LOGIN PASSWORD ''' || replace('${DB_PASS}','''','''''') || '''';
|
|
||||||
END IF;
|
|
||||||
END
|
|
||||||
\$\$;
|
|
||||||
SQL
|
|
||||||
|
|
||||||
# Check and create database if it doesn't exist
|
# Create role if it doesn't exist, else update password to match config
|
||||||
if ! psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres -tAc "SELECT 1 FROM pg_database WHERE datname = '${DB_NAME}'"; then
|
if ! psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname = '${DB_USER}'" | grep -q 1; then
|
||||||
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres <<SQL
|
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres \
|
||||||
CREATE DATABASE ${DB_NAME} OWNER ${DB_USER};
|
-c "CREATE ROLE \"${DB_USER}\" LOGIN PASSWORD '${DB_PASS//\'/\'\'}';"
|
||||||
SQL
|
else
|
||||||
fi
|
# update password in case it changed
|
||||||
|
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres \
|
||||||
|
-c "ALTER ROLE \"${DB_USER}\" PASSWORD '${DB_PASS//\'/\'\'}';"
|
||||||
|
fi
|
||||||
|
|
||||||
bashio::log.info "Internal Postgres ready."
|
# Check and create database if it doesn't exist
|
||||||
|
if ! psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres -tAc "SELECT 1 FROM pg_database WHERE datname = '${DB_NAME}'" | grep -q 1; then
|
||||||
|
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres \
|
||||||
|
-c "CREATE DATABASE \"${DB_NAME}\" OWNER \"${DB_USER}\";"
|
||||||
|
else
|
||||||
|
# Optional: ensure DB ownership
|
||||||
|
psql -v ON_ERROR_STOP=1 -h "$DB_HOST_INTERNAL" -p "$DB_PORT_INTERNAL" -U postgres \
|
||||||
|
-c "ALTER DATABASE \"${DB_NAME}\" OWNER TO \"${DB_USER}\";"
|
||||||
|
fi
|
||||||
|
|
||||||
|
bashio::log.info "Internal Postgres ready."
|
||||||
}
|
}
|
||||||
|
|
||||||
start_minio() {
|
start_minio() {
|
||||||
|
|||||||
Reference in New Issue
Block a user