-
Notifications
You must be signed in to change notification settings - Fork 2
Backfill
Home | Banco-de-Dados | Produção
O backfill corrige dados incompletos/inconsistentes em background sem interromper o processamento online.
npm run db:backfillArquivo principal: src/core/db/backfill.ts.
Características:
- execução em ciclos
- checkpoints por etapa (
backfill_checkpoints) - lote configurável por ambiente
- logs de progresso por passo
- normalização de usuários/identificadores
- preenchimento de
sender_user_id - reconciliação de
message_events/events_log - complemento de metadados de mídia
- preenchimento de dados derivados de grupos/contatos
O ciclo atual prioriza redução de nulos em campos críticos de identidade e nome:
wa_contacts_cache.user_idlid_mappings.user_idusers.display_namewa_contacts_cache.display_namechats.display_name
Isso melhora rapidamente integridade para trilhas de comando, eventos e auditoria.
Foi corrigido no runtime SQL um comportamento que podia degradar dados:
-
setChatnão sobrescreve maisdisplay_namecomNULLem updates parciais. -
last_message_tseunread_counttambém preservam valor existente quando update chega nulo. -
setContactagora preenche chat comdisplay_namequando estiverNULLou vazio.
Resultado esperado: queda contínua de nulos em users.display_name e chats.display_name, com menor regressão entre ciclos.
Com WA_MEDIA_AUTO_DOWNLOAD=true, o worker pode completar:
-
message_media.file_lengthviastatdo arquivo local -
message_media.file_namevia basename delocal_path
- execute com banco íntegro e backup recente
- monitore tempo por ciclo
- ajuste batch para evitar pressão excessiva no banco
- logs de
affectedRowspor etapa - comparação de pendências antes/depois do ciclo
- uso de
db:nullspara validar redução de lacunas
Zyra Wiki • Última atualização: 15/05/2026
Zyra Wiki • Última atualização: 17/05/2026
Home | Configuração | Comandos | Banco-de-Dados | Produção | Troubleshooting