-
Notifications
You must be signed in to change notification settings - Fork 2
Banco de Dados
Esta página apresenta o mapa de domínio do banco do Zyra. O MySQL 8 é a camada durável do sistema e a fonte de verdade para histórico, auditoria e relacionamentos operacionais.
A definição completa do schema está em docs/exemplodbmodel.md.
O MySQL é responsável por:
- persistência de credenciais e chaves de sessão
- histórico de mensagens e mídia
- auditoria de eventos, comandos e falhas
- reconciliação de identidade entre JID, PN, LID e aliases
- armazenamento durável para grupos, contatos, newsletters e blocklist
- suporte ao backfill e à recuperação de consistência derivada
A maioria das entidades relevantes é isolada por connection_id.
Isso permite:
- múltiplas instâncias compartilhando o mesmo banco
- segregação por tenant/sessão
- auditoria por conexão
- execução segura de backfill e manutenção sem misturar dados entre bots
O desenho do Zyra combina duas coisas ao mesmo tempo:
- payload bruto em JSON para flexibilidade e auditoria
- colunas derivadas e relacionais para consulta, indexação e uso operacional
Esse padrão é intencional. Parte da consistência relacional pode ser enriquecida ou corrigida mais tarde pelo worker de backfill.
connectionsauth_credssignal_keys
Essas tabelas mantêm a identidade da conexão e o material necessário para preservar a sessão do WhatsApp.
usersuser_identifiersuser_aliaseslid_mappingsuser_devices
Esse bloco resolve o problema de identidade unificada, conectando PN, LID, JID, aliases visíveis e dispositivos a um mesmo user_id lógico.
chatsmessagesmessage_mediamessage_text_indexmessage_userschat_usersmessage_eventsmessage_failures
Esse conjunto suporta histórico, indexação textual, metadados de mídia, relações entre usuários e trilhas de falha.
groupsgroup_participantsgroup_eventsgroup_join_requestsgroup_config
events_logevents_log_archivecommands_logbot_sessionsblocklistlabelslabel_associations
newslettersnewsletter_participantsnewsletter_events
user_sticker_templatesuser_generated_stickersbackfill_checkpoints
Tabela central do histórico. Guarda identidade da mensagem, dados derivados e payload serializado.
Armazena metadados de mídia, incluindo local_path quando o download automático está habilitado.
Camada central da reconciliação de identidade. Sem ela, JID, PN e LID ficariam desconectados e a auditoria perderia valor analítico.
Registro de eventos amplos do runtime, útil para suporte, troubleshooting e trilhas operacionais.
Auditoria de execução de comandos no runtime.
Permite que o worker contínuo retome processamento incremental sem reiniciar o trabalho inteiro.
- histórico durável
- auditoria completa
- relacionamento consistente entre entidades
- busca e análise posteriores
- recuperação após restart ou falha de processo
- base para backfill e reconciliação
Memória e Redis ajudam a performance; o MySQL preserva o estado de longo prazo e a rastreabilidade.
Comandos mais relevantes:
npm run db:init
npm run db:verify
npm run db:nulls
npm run db:backfill
npm run db:delete-session
npm run db:repair-group-participantsO projeto privilegia:
- init idempotente para criar o que falta
- mudanças não destrutivas por padrão
- compatibilidade operacional em produção
- suporte posterior a enriquecimento via backfill
- Persistência
- Backfill
- Produção
docs/exemplodbmodel.md
Zyra Wiki • Última atualização: 17/05/2026
Zyra Wiki • Última atualização: 17/05/2026
Home | Configuração | Comandos | Banco-de-Dados | Produção | Troubleshooting