- Shell 100%
| .claude | ||
| init | ||
| .gitignore | ||
| README.md | ||
tmf9-base
Schema base do TMF9 — fonte canônica dos artefatos de inicialização do banco de dados Postgres, consumidos pelo Hub no provisioning de novos clientes.
Histórico: este repo era um template de cliente vazio. A partir de v9.44.x ele foi repurposed para versionar o schema base.
Estrutura
init/
├── 01-schema.sql # DDL completo (534 tabelas, índices, FKs)
├── 02-load-data.sh # Carrega _data.sql.gz com FKs disabled
├── 03-sequences.sql # Reseta sequences para o pico atual
├── 04-create-demo-local.sh # Stamp alembic + cria DBs de cliente locais
└── _data.sql.gz # Dump de dados (seeds + demo)
Versionamento
A tag deste repo acompanha a versão do tmf9 que gerou o schema (ex: v9.44.1).
$ git tag --sort=-v:refname | head -3
Como o Hub consome
O ProvisioningService (tmf-management/backend/app/services/provisioning_service.py)
clona este repo em runtime durante provision_tmfbase:
git clone --depth 1 -b $TMF_BASE_VERSION \
https://git.trademarketingforce.com/TMF/tmf9-base.git \
/tmp/tmf9-base
E aplica os 3 SQL files (em ordem) no DB do cliente.
Como o tmf9 atualiza este repo
Não é editado manualmente. Recebe espelho automático sempre que o
/db-day-zero (skill no repo tmf9) consolida um novo Point Zero.
Fluxo:
- No
tmf9, executar/db-day-zero(consolida migrations no01-schema.sql) - O script faz commit/push em
tmf9-base/init/* - Tag de versão criada nos dois repos
Fonte única de verdade: tmf9/docker/postgres/init/. Este repo é espelho.
Quando uma versão é publicada
Toda tag v* do tmf9 que carrega mudanças de schema deve gerar uma tag
correspondente neste repo. Releases de app puro (sem mudança de DDL) reusam
a tag anterior do tmf9-base.