Executando verificação de segurança...
2

Pitch: Parei de me perder no banco e resolvi isso criando um gerador de DER em tempo real

Recentemente peguei uma task simples, mas travei em algo comum: eu não fazia ideia de onde estavam as tabelas que precisava usar.

Comecei o processo padrão: procurar no código, abrir migrations, tentar entender os relacionamentos manualmente. Percebi que estava gastando mais tempo entendendo a estrutura do banco do que resolvendo a task em si.

Então resolvi construir uma ferramenta para atacar exatamente esse problema.

https://dervisible.squareweb.app/


Ideia

A proposta é simples:

Você fornece um schema SQL e a aplicação gera um DER (Diagrama Entidade-Relacionamento) em tempo real.

Isso permite:

  • Visualizar tabelas e colunas rapidamente
  • Entender relacionamentos sem precisar navegar por vários arquivos
  • Ter uma visão geral da estrutura do banco em poucos segundos

O que fez diferença na prática

Mais do que gerar o diagrama, o que ajudou foi conseguir navegar no contexto:

  • Focar em uma tabela específica
  • Ver todas as conexões dela (N-N, N-1, etc)
  • Reduzir o ruído visual ao isolar apenas o que importa

Isso eliminou boa parte do tempo gasto “procurando” informações.


Próximos passos

Estou desenvolvendo um query tracer, com a ideia de:

  • Simular caminhos de JOIN
  • Identificar possíveis gargalos
  • Entender melhor o impacto das consultas na estrutura

A intenção é ir além da visualização estática e ajudar também na análise de queries.


Motivação

Existem ferramentas boas para visualização de banco, mas muitas vezes:

  • São pesadas
  • Não são pensadas para leitura rápida durante uma task
  • Ou não ajudam no fluxo de entendimento no dia a dia

A proposta aqui foi construir algo mais direto e rápido para esse contexto.


Como vocês costumam explorar schemas hoje?

  • Usam alguma ferramenta específica?
  • Vão direto no código/migration?
  • O que mais atrapalha nesse processo?

Qualquer feedback é bem-vindo.

Carregando publicação patrocinada...
2

Muito legal a proposta, vejo muita oportunidade de uso no mundo de customização de ERPs (TOTVS, SAP, etc...), basicamente muitas empresas fazem customizações, as deixam mal documentadas e esperam que você adivinhe como funciona a relação entre as tabelas, esse cara ai mata esse problema.

Uma sugestão de feature, seria fazer o processo inverso. Criar o DER e ele retornar o Schema, acabaria sendo muito útil para o pessoal que está iniciando e grande valia para o pessoal de arquitetura.

Projeto excelente! Parabéns.

2

Já vi ferramentas que transformam o DER em schema, mas todos eles falham em não tratar corretamente as constraints.

É como através da documentação de um sistema, gerar o código daquele sistema, vai no máximo chegar em algo bem básico.

Documentação e código ou schema, são visões diferentes de um mesmo produto que não são diretamente proporcionais ou relacionadas.

1

Você está 100% certo nesse ponto.

Por isso, a gente não pretende seguir pelo caminho de geração totalmente automática. A parte estrutural (tabelas e colunas) até funciona bem automatizar, mas quando entra em constraints e regras mais complexas, o cenário muda completamente.

A ideia é separar bem as coisas:

Estrutura básica: geração automática (tabelas, colunas, relações simples)
Regras e constraints: construção assistida

Para essa segunda parte, estamos pensando em dar suporte com agentes internos, que ajudam sugerindo possíveis constraints, padrões e melhorias, mas sempre deixando a decisão final com o usuário.

Ou seja, em vez de tentar “adivinhar” tudo, a ferramenta passa a auxiliar na construção, mantendo controle total na mão de quem está modelando.

A proposta é justamente evitar esse problema que você comentou.

1

Fala Luka, obrigado pelo feedback!

Essa parte de criação do DER a partir do SQL já está em produção. Fico feliz de ver que você realmente explorou o projeto

Criação de colunas

Foto da criacao de nova coluna

Também estamos evoluindo a parte de modelagem direto pela interface, permitindo criar e editar colunas de forma mais visual.

Relationships

relationship

Agora estamos adicionando o sistema de relacionamentos, pra facilitar ainda mais a construção e entendimento das conexões entre tabelas.

A ideia é ir caminhando pra uma experiência onde você consiga tanto visualizar quanto modelar o banco sem precisar sair da ferramenta.

Se tiver mais sugestões ou pontos que você acha que podem melhorar, manda aí, ajuda bastante na evolução do projeto.