Fix production daabase creation

* The user should be externally configured.
This commit is contained in:
Χγφτ Kompanion 2025-10-19 19:10:54 +02:00
parent b2197ff11c
commit 4091059e75
2 changed files with 10 additions and 10 deletions

View File

@ -1,2 +1 @@
CREATE ROLE kompanion LOGIN PASSWORD 'komp';
CREATE DATABASE kompanion OWNER kompanion;

View File

@ -5,17 +5,18 @@ ROLE=${ROLE:-kompanion}
PASS=${PASS:-komp}
psql -v ON_ERROR_STOP=1 <<SQL
DO $$ BEGIN
PERFORM 1 FROM pg_roles WHERE rolname = '$ROLE';
IF NOT FOUND THEN EXECUTE format('CREATE ROLE %I LOGIN PASSWORD %L', '$ROLE', '$PASS'); END IF;
END $$;
DO $$ BEGIN
IF NOT EXISTS (SELECT 1 FROM pg_database WHERE datname = '$DB_NAME') THEN
EXECUTE format('CREATE DATABASE %I OWNER %I', '$DB_NAME', '$ROLE');
END IF;
END $$;
DROP DATABASE IF EXISTS "$DB_NAME";
CREATE DATABASE "$DB_NAME" OWNER "$ROLE";
SQL
for f in "$(dirname "$0")"/../init/*.sql; do
if [[ "$f" == *"001_roles.sql"* ]]; then
continue
fi
echo "Applying $f"
psql -d "$DB_NAME" -f "$f"
done
for f in `dirname($0)`/*.sql; do
echo "Applying $f"
psql -d "$DB_NAME" -f "$f"