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