Files
agenciapsilmno/database-novo/README-GENERATE-DASHBOARD.md

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)