Runbook — Correção histórica de landigitado / laninformado (MOV-01.5)¶
Issue: #29 · PLANID: MOV-01.5
Script SQL: ../../scripts/sql/fix_landigitado_logical_count.sql
Objetivo¶
Documentos/lotes importados antes do fix de contagem lógica podem ter laninformado / landigitado inflados (contagem física D/C). Este runbook recalcula para COUNT(DISTINCT lancamento).
Pré-requisitos¶
- Backup do banco (ou snapshot) do ambiente alvo.
- Aprovação explícita do Tech Lead para QAS/prod (não executar cego em produção).
- Janela sem import IPL / consolidação concorrente no escopo.
- Cliente
psql(ou DBeaver) com acesso de escrita act_documentos/ct_lote.
Procedimento¶
A — Diagnóstico (somente leitura)¶
Execute o bloco SELECT de diagnóstico no início do SQL (descomentado).
Aceite parcial: listar documentos com landigitado <> logical_cnt.
B — Correção¶
- Revise o script; confirme política do passo 2 (
laninformado = landigitado). - Em QAS primeiro:
psql "$DATABASE_URL" -v ON_ERROR_STOP=1 \
-f scripts/sql/fix_landigitado_logical_count.sql
- Reexecute o diagnóstico:
docs_ainda_divergentesdeve ser 0. - Na UI: lote/documento com tipo 2 — “Informados/Digitados” = N lógico; grade detalhada = 2N linhas D/C.
- Confirme que alerta
LanDigitado <> LanInformadonão dispara em falso.
C — Alternativa: reimport¶
Se a política permitir apagar o lote importado e reprocessar o IPL com Lambda já corrigida (MOV-01.1–01.3):
- Identificar
arquivo_ipl/ textoImport:….IPL. - Remover lote conforme procedimento operacional do ambiente (não documentado aqui por risco).
- Reupload via
scripts/watch-import-pipeline.sh upload …. - Validar totais lógicos no BD e na UI.
Preferir o SQL quando houver muitos lotes históricos ou política de retenção impedir delete.
Riscos¶
- Relatórios que esperavam count físico de linhas (inventar impacto antes de prod).
laninformadoalinhado alandigitadoaltera o valor “informado” original do arquivo — documentar decisão no ticket.
Rollback¶
Restaurar backup/snapshot. O script não grava tabela de auditoria própria.
Critério de aceite¶
- Ambiente afetado corrigido ou procedimento aprovado pelo Tech Lead sem execução em prod.
- Evidência (prints/SQL) anexada à Issue #29.