teqo-backup/docs/changelog/2026-08-23-ops79.md
Francisco Solla bddbd5c085 ops(OPS79): última migração de dados em produção — reconciliação da vertical campanha (Neon→teqo_1313) + migração do residual público (Closes #797)
- scripts/reconcile-campaign-vertical.mjs: verificação read-only repetível (contagens + junta de IDs das 13 coleções da vertical + conteúdo semântico das rels); absorve os 3 links de edição de portfolio pós-OPS51; nunca imprime PII
- scripts/migrate-signature-orphan.mjs: migração one-off com guard OPS79_MIGRATE_CONFIRM=1, dry-run/apply, transação única, PII mascarada
- Execução 100% no homeserver: aplicado contact 2225 + signature 1486 preservada + subscription 1492; sequences ajustadas; pós-verificação signature 1485=1485 e reconcile 19/19
- Runbook (docs/ops/teqo-1313-deploy.md §OPS79): execução + rollback (DELETE 3 linhas + setval)
- docs: plano de intenção restaurado (deletado acidentalmente em C140) + impl plan + changelog
2026-08-23 22:45:43 -03:00

1.4 KiB

OPS79 — última migração de dados em produção: plataforma antiga → nova (vertical campanha) (2026-08-23): com a fonte congelada pelo OPS80 (zero escritas no Neon desde 2026-08-23 22:30 UTC), reconciliação e migração do residual. Descoberta-chave: a vertical campanha JÁ estava 100% íntegra no teo_1313 (aceite do OPS51 confirmado por reconciliação repetível — diff 0 em contagens e junta de IDs das 13 coleções; municipality_rels só 3 links de edição de portfólio pós-OPS51, absorvidos como não-dado). O único residual real entre Neon e target era a signature pública 1486 (petition fim-escala-6x1) com seu contato + subscription, cujo contato originário (Juares) não existia no target (o id 2221 do target é outra pessoa). Ferramentas: scripts/reconcile-campaign-vertical.mjs (read-only, 19/19 PASS, nunca imprime PII) + scripts/migrate-signature-orphan.mjs (dry-run/apply, guard OPS79_MIGRATE_CONFIRM=1, transação única, PII mascarada nos logs). Execução 100% no homeserver: aplicado contact novo 2225 + signature 1486 preservada + subscription 1492 + sequences ajustadas; pós-verificação signature 1485=1485, reconcile 19/19, smoke / /campanha /admin 200. Runbook (rollback = DELETE das 3 linhas + setval) em docs/ops/teqo-1313-deploy.md §OPS79. Sem migration de schema, sem access/Consent novo, sem UI. Closes #797.