2.5 KiB
2.5 KiB
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:
# 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:
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:
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)