-- moments role and database bootstrap. -- Run as a postgres superuser against the cluster's `postgres` database. -- Idempotent — safe to re-run on every deploy. -- -- psql -h magrathea.kosherinata.internal -U postgres -d postgres \ -- -f asset/sql/bootstrap.sql -- -- After this completes, run asset/sql/bootstrap-moments.sql against the -- newly created `moments` database to apply the in-database grants. DO $$ BEGIN IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'moments_rw') THEN CREATE ROLE moments_rw LOGIN; END IF; IF NOT EXISTS (SELECT FROM pg_roles WHERE rolname = 'moments_ro') THEN CREATE ROLE moments_ro LOGIN; END IF; END $$; SELECT 'CREATE DATABASE moments OWNER moments_rw' WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'moments') \gexec GRANT CONNECT ON DATABASE moments TO moments_ro, moments_rw;