\set ON_ERROR_STOP on

SELECT format('CREATE ROLE %I LOGIN PASSWORD %L', 'cod', :'cod_password')
WHERE NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'cod') \gexec

SELECT format('CREATE ROLE %I LOGIN PASSWORD %L', 'n8n', :'n8n_password')
WHERE NOT EXISTS (SELECT FROM pg_catalog.pg_roles WHERE rolname = 'n8n') \gexec

SELECT format('CREATE DATABASE %I OWNER %I', 'cod', 'cod')
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'cod') \gexec

SELECT format('CREATE DATABASE %I OWNER %I', 'cod_test', 'cod')
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'cod_test') \gexec

SELECT format('CREATE DATABASE %I OWNER %I', 'n8n', 'n8n')
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'n8n') \gexec

REVOKE ALL ON DATABASE cod FROM PUBLIC;
REVOKE ALL ON DATABASE cod_test FROM PUBLIC;
REVOKE ALL ON DATABASE n8n FROM PUBLIC;
