Pular para conteúdo

Migrações de Banco

As migrações criam e atualizam a estrutura das tabelas no banco DNCI. Devem ser executadas na ordem indicada.

Lista de Migrações

Fase Script Descrição
1 run_fase1.py Tabelas base: log_auditoria_dnci, log_validacao_dnci, checkpoint
2 run_fase2.py Tabelas de agravos: dnci_agravo, dnci_evidencia, dnci_presumivel
4 run_fase4.py Cenários: cenario_monitoramento, cenario_agravo, cenario_estabelecimento
5 run_fase5.py Usuários: usuarios_dnci com RBAC
6 run_fase6.py Cache de clima: clima_cache
7 run_fase7.py Auditoria LGPD: audit_log
8 run_fase8.py Versionamento de agravos: colunas versao, vigencia_*, views
9 run_fase9.py Diagnósticos brutos: diagnosticos_brutos
10 run_fase10.py Cenários formalizados: agravo_versao em cenários, motivo
11 run_fase11.py Revisão manual: fila_revisao_manual

Fases 3 não existe

A numeração pula a fase 3 — isto é intencional.

Como Executar

# Com o container do dashboard rodando:
docker compose exec dnci-dashboard python /app/migrations/run_fase1.py
docker compose exec dnci-dashboard python /app/migrations/run_fase2.py
# ... continuar na ordem até run_fase11.py

Idempotentes

As migrações são idempotentes — podem ser executadas mais de uma vez sem causar erros. O script verifica se a tabela/coluna já existe antes de criar.


Atualização de Versão

Procedimento Padrão

# 1. Obter código mais recente
cd /opt/monitordnci
git pull origin main

# 2. Parar containers
docker compose down

# 3. Reconstruir imagens (sem cache)
docker compose build --no-cache

# 4. Executar novas migrações (se houver)
docker compose up -d dnci-dashboard
docker compose exec dnci-dashboard python /app/migrations/run_faseN.py

# 5. Iniciar todos os serviços
docker compose up -d

# 6. Verificar health
curl http://localhost:5000/api/health

# 7. Verificar logs
docker compose logs -f --tail=50

Backup

Antes de atualizar, faça backup do banco DNCI:

pg_dump -h HOST -U USER -d DATABASE -n dnci > backup_dnci_$(date +%Y%m%d).sql