Pular para o conteúdo principal

ADR 0002 — Duas conexões PostgreSQL

  • Status: Aceite
  • Data: 2026-03

Contexto

Identidade (public."user", permissões, templates de e-mail) e domínio (empresas, TPV, estabelecimentos, white labels) vivem em bases distintas no ecossistema GEVTECH (G_DB_POSTGRESS vs cronospay / default). Unificar num único TypeORM forRoot misturaria credenciais, schemas e ciclos de vida.

Decisão

  • Conexão default: POSTGRES_* / DATABASE_* / PG* — company, operacional, presença, tenants, white labels.
  • Conexão USER_PROFILES: AUTH_DATABASE_*public."user" e tabelas relacionais, roles, logs de reset, templates.

synchronize: false em ambas. Resolução em src/config/.

Consequências

  • Positivo: isolamento de credenciais e de blast radius; auth pode evoluir sem tocar no schema operacional.
  • Negativo: transações cruzadas não existem; joins entre user de auth e company da BD principal são lógicos (UUIDs), não FK de motor.
  • Operação: o container precisa das duas famílias de variáveis — ver operacao/env-container.md.