update db init script to put create databse outside of transaction

This commit is contained in:
j37hr0 2026-04-27 15:37:16 +12:00
parent 9949adc745
commit dee764eb31

View file

@ -43,6 +43,7 @@ spec:
- -c
- |
psql <<EOF
-- Create user (safe in transaction)
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = '${APP_USER}') THEN
@ -51,13 +52,12 @@ spec:
END
\$\$;
DO \$\$
BEGIN
IF NOT EXISTS (SELECT FROM pg_database WHERE datname = '${APP_DB}') THEN
CREATE DATABASE ${APP_DB} OWNER ${APP_USER};
END IF;
END
\$\$;
-- Create database (must be outside transaction)
SELECT 'CREATE DATABASE ${APP_DB} OWNER ${APP_USER}'
WHERE NOT EXISTS (
SELECT FROM pg_database WHERE datname = '${APP_DB}'
)\gexec
-- Grant privileges (safe)
GRANT ALL PRIVILEGES ON DATABASE ${APP_DB} TO ${APP_USER};
EOF