lronetto-main/postgres/init/01-create-databases.sh
2026-07-08 22:25:10 +00:00

26 lines
1.4 KiB
Bash

#!/bin/bash
# Cria os bancos e roles dedicados a cada app. Rodado pelo postgres entrypoint
# uma única vez, no primeiro boot. Subsequente: ignorado (init scripts só
# rodam quando PGDATA está vazio).
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE ROLE "${WEDDING_DB_USER}" WITH LOGIN PASSWORD '${WEDDING_DB_PASSWORD}';
CREATE DATABASE "${WEDDING_DB_NAME}" OWNER "${WEDDING_DB_USER}";
GRANT ALL PRIVILEGES ON DATABASE "${WEDDING_DB_NAME}" TO "${WEDDING_DB_USER}";
CREATE ROLE "${GITEA_DB_USER}" WITH LOGIN PASSWORD '${GITEA_DB_PASSWORD}';
CREATE DATABASE "${GITEA_DB_NAME}" OWNER "${GITEA_DB_USER}";
GRANT ALL PRIVILEGES ON DATABASE "${GITEA_DB_NAME}" TO "${GITEA_DB_USER}";
CREATE ROLE "${FINANCE_DB_USER}" WITH LOGIN PASSWORD '${FINANCE_DB_PASSWORD}';
CREATE DATABASE "${FINANCE_DB_NAME}" OWNER "${FINANCE_DB_USER}";
GRANT ALL PRIVILEGES ON DATABASE "${FINANCE_DB_NAME}" TO "${FINANCE_DB_USER}";
CREATE ROLE "${CLAUDEWEB_DB_USER}" WITH LOGIN PASSWORD '${CLAUDEWEB_DB_PASSWORD}';
CREATE DATABASE "${CLAUDEWEB_DB_NAME}" OWNER "${CLAUDEWEB_DB_USER}";
GRANT ALL PRIVILEGES ON DATABASE "${CLAUDEWEB_DB_NAME}" TO "${CLAUDEWEB_DB_USER}";
EOSQL
echo "[postgres-init] roles + databases criados para wedding (${WEDDING_DB_NAME}), gitea (${GITEA_DB_NAME}), finance (${FINANCE_DB_NAME}) e claudeweb (${CLAUDEWEB_DB_NAME})"