Files
iti-technology/infra/postgres/init/01-init.sql
T
Lorenzo SanesiandClaude Opus 5.5 b83ce039fb
Deploy stack su Proxmox / deploy (push) Failing after 3s
Piattaforma ITI TECHNOLOGY: monorepo, Medusa, API, sito, area riservata e deploy
Monorepo npm con apps/public (Angular SSR), apps/private (Angular SPA),
apps/api (Fastify), packages/shared e packages/styles; Medusa 2.21 in medusa/;
infrastruttura Docker (Postgres PostGIS+pgvector, Redis, Caddy, backup) e
workflow Gitea Actions per il deploy via SSH a ogni push su master.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018jQyT6dR9czzGwqb7FkG6u
2026-10-20 09:30:48 +02:00

44 lines
1.9 KiB
SQL

-- Eseguito una sola volta, al primo avvio con volume dati vuoto
-- (docker-entrypoint-initdb.d, come superuser POSTGRES_USER).
-- Le credenziali arrivano dalle variabili d'ambiente del container via \getenv (psql >= 15).
\set ON_ERROR_STOP on
\getenv app_db_name APP_DB_NAME
\getenv app_db_user APP_DB_USER
\getenv app_db_password APP_DB_PASSWORD
\getenv medusa_db_name MEDUSA_DB_NAME
\getenv medusa_db_user MEDUSA_DB_USER
\getenv medusa_db_password MEDUSA_DB_PASSWORD
-- Utenti distinti per app custom e Medusa
CREATE ROLE :"app_db_user" LOGIN PASSWORD :'app_db_password';
CREATE ROLE :"medusa_db_user" LOGIN PASSWORD :'medusa_db_password';
-- Database, ciascuno di proprietà del rispettivo utente
-- (in PG16 lo schema public appartiene a pg_database_owner, quindi l'owner del DB ci può creare tabelle)
CREATE DATABASE :"app_db_name" OWNER :"app_db_user" ENCODING 'UTF8' TEMPLATE template0;
CREATE DATABASE :"medusa_db_name" OWNER :"medusa_db_user" ENCODING 'UTF8' TEMPLATE template0;
REVOKE ALL ON DATABASE :"app_db_name" FROM PUBLIC;
REVOKE ALL ON DATABASE :"medusa_db_name" FROM PUBLIC;
-- Database dei test automatici di apps/api (<APP_DB_NAME>_test, stesso utente):
-- i test lo svuotano a ogni esecuzione, mai puntarli sul DB applicativo.
SELECT format('%s_test', :'app_db_name') AS app_test_db_name \gset
CREATE DATABASE :"app_test_db_name" OWNER :"app_db_user" ENCODING 'UTF8' TEMPLATE template0;
REVOKE ALL ON DATABASE :"app_test_db_name" FROM PUBLIC;
-- Estensioni del DB applicativo e di quello di test (create da superuser: postgis non è "trusted")
\connect :"app_db_name"
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;
\connect :"app_test_db_name"
CREATE EXTENSION IF NOT EXISTS postgis;
CREATE EXTENSION IF NOT EXISTS vector;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;