# README — generate-dashboard.js Script Node.js que lê o `schema.sql` do backup mais recente e gera um `dashboard.html` interativo com a visão completa do banco de dados do projeto. --- ## Como usar Coloque o `generate-dashboard.js` na **raiz do projeto** (mesma pasta do `db.cjs`) e rode: ```bash # Usa o backup mais recente automaticamente node generate-dashboard.js # Ou especifica uma data node generate-dashboard.js 2026-03-27 ``` O arquivo `dashboard.html` será gerado na raiz do projeto. Basta abrir no browser. --- ## Fluxo recomendado Sempre que fizer alterações no banco, rode os dois comandos em sequência: ```bash node db.cjs backup # gera o backup em database-novo/backups/YYYY-MM-DD/ node generate-dashboard.js # lê o backup mais recente e gera o dashboard.html ``` --- ## O que o dashboard mostra - **Visão geral** — cards com os 9 domínios do projeto, quantidade de tabelas e FKs por domínio - **Tabelas** — todas as 86 tabelas com colunas, tipos, badges PK/FK - **Foreign Keys** — cada FK aparece como link clicável que pula direto para a tabela destino - **Views** — lista das 24 views do schema público - **Busca** — busca em tempo real por nome de tabela ou nome de coluna - **Sidebar** — navegação por domínio --- ## Estrutura de pastas esperada O script espera essa estrutura para funcionar: ``` raiz-do-projeto/ ├── db.cjs ├── db.config.json ├── generate-dashboard.js ← script ├── dashboard.html ← gerado aqui └── database-novo/ └── backups/ └── 2026-03-27/ ├── schema.sql ← lido pelo script ├── data.sql └── full_dump.sql ``` --- ## Tabelas novas não aparecem no domínio certo? Quando você criar uma migration nova com uma tabela nova, ela aparecerá no dashboard na seção **"Outros"** e o script vai avisar no terminal: ``` ⚠ Tabelas novas sem domínio definido (aparecerão em "Outros"): - minha_tabela_nova → Edite DOMAIN_TABLES no script para mapeá-las. ``` Para corrigir, abra o `generate-dashboard.js` e adicione a tabela no domínio correto dentro do objeto `DOMAIN_TABLES` no topo do arquivo: ```js const DOMAIN_TABLES = { 'Agenda': [ 'agenda_eventos', 'agenda_configuracoes', // ... 'minha_tabela_nova', // ← adiciona aqui ], // ... }; ``` Depois rode `node generate-dashboard.js` novamente. --- ## Requisitos - Node.js instalado (qualquer versão >= 14) - Sem dependências externas — usa apenas módulos nativos (`fs`, `path`)