DEPRECATED — Hub agora consome init/* via release asset do tmf9. Ver TMF9-53793/53794/53795.
This repository has been archived on 2026-04-28. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Find a file
2026-04-26 13:19:42 -03:00
.claude Adiciona configurações .claude do TMF9 2026-01-21 15:36:02 -03:00
init sync: schema do tmf9 v9.45.0 (auto via /db-day-zero) 2026-04-26 13:19:42 -03:00
.gitignore Configuração inicial do repositório TMF9 Base (Template) 2026-01-21 14:56:07 -03:00
README.md refactor: repurpose tmf9-base como schema canônico TMF9 2026-04-26 09:44:19 -03:00

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:

  1. No tmf9, executar /db-day-zero (consolida migrations no 01-schema.sql)
  2. O script faz commit/push em tmf9-base/init/*
  3. 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.