Files
edr-platform/infrastructure/docker/initdb/01-schemas.sql
2026-08-25 00:11:39 +03:00

23 lines
1.1 KiB
SQL

-- Bootstrap for the single, schema-separated platform database.
--
-- Runs once, on an empty data volume (postgres image initdb hook). Every app owns
-- exactly one schema and applies its own migrations into it; nothing here creates
-- tables. Ownership map:
--
-- iam edr-freight-api (`pnpm iam:migration:run`, ships with @tria-plc/iamapi-common)
-- -> history in iam.typeorm_migrations
-- freight edr-freight-api -> history in freight.migrations
-- passenger edr-passenger-api (Prisma) -> history in passenger._prisma_migrations
-- edr_payment edr-payment-api -> its own TypeORM history
-- audit @tria-plc/auditlog consumer
--
-- Cross-schema references stay SOFT (plain UUID columns + denormalized display
-- fields). Co-location makes hard FKs possible; the platform deliberately does not
-- use them, so IAM stays independently deployable and the audit trail outlives a
-- deleted user.
CREATE SCHEMA IF NOT EXISTS iam;
CREATE SCHEMA IF NOT EXISTS freight;
CREATE SCHEMA IF NOT EXISTS passenger;
CREATE SCHEMA IF NOT EXISTS edr_payment;
CREATE SCHEMA IF NOT EXISTS audit;