O diagrama do banco,
versionado no git.

Gabbro é um estúdio DBML que vive dentro do repositório: diagrama, documentação, diff entre branches e histórico commit a commit. Roda na sua máquina, sem conta e sem servidor.

Também para macOS e Linux
Open source, MIT Sem conta, sem servidor Funciona offline
Demo ao vivo
Gabbro loja-db VisualizarEditar
DiagramaDocs master +1 tab−1 tab+1 col~1 col−1 col Diff
empresa
PKidint8
razao_socialvarchar
cnpjvarchar
produto
PKidint8
FKempresa_idint8
descricaovarchar
pedido
PKidint8
FKempresa_idint8
FKproduto_idint8
totalnumeric
obstext
cupom
PKidint8
FKpedido_idint8
codigovarchar
pagamento
PKidint8
FKpedido_idint8
valornumeric
HISTÓRICOloja-db · db.dbmlSomente leitura, comparando com o commit anterior
develop: pagamento entra, cupom sai, pedido ganha total
a1f0c72 · você · agora
produto: FK empresa_id
7d3e9b0 · você · há 2 dias
schema inicial
0c48a15 · você · há 5 dias
db.dbml antesdepois
7Table produto {
7Table produto {
10descricao varchar
10descricao text
11}
11}
13Table pedido {
13Table pedido {
17obs text
17total numeric
18}
18}
20Table cupom { … }
20Table pagamento { … }
diff master → develop
master
develop

Diagrama, branch, diff e histórico, como no app.

Por que existe

Ferramenta de diagrama guarda um estado. Você precisa de uma história.

Ninguém volta pra atualizar o desenho depois do deploy: é trabalho manual e desenho errado não quebra build nenhum. E o seu diagrama está desatualizado agora, como sempre esteve. A conta chega nas perguntas que ele deveria responder num relance.

  • O que mudou no banco no último mês?
  • Produção está diferente de desenvolvimento? Em quê?
  • Essa coluna nova já subiu, ou ainda está na develop?
  • Quem mexeu nessa tabela, e em qual commit?

A ferramenta não responde nenhuma delas, porque guarda um estado, não uma história. Dentro do git, todas saem de graça.

Recursos

Tudo isso sai do mesmo arquivo de texto

Diagrama, documentação, diff entre branches e histórico. Tudo abaixo é print do app rodando.

Aba Diagrama do Gabbro: tabelas agrupadas por contexto e arestas de chave estrangeira Aba Docs do Gabbro: documentação da tabela com colunas, tipos e relações Modo Diff do Gabbro: diferenças entre duas branches destacadas no diagrama Modo Histórico do Gabbro: lista de commits e o diff do DBML lado a lado Ampliar

E ainda vem com

Visualizar e Editar

Somente leitura no dia a dia. O modo Editar abre o editor de DBML e a barra fica verde. Salvar commita na hora e pusha em background.

Layout fora do schema

As posições das tabelas vivem no positions.json, separado do DBML. Reorganizou o diagrama? O diff do schema continua limpo.

Sync self-healing

pull --rebase --autostash e push que se recupera de non-fast-forward. Falhas voltam classificadas com o fix sugerido.

Auto-update

Novas versões chegam do GitHub e instalam sem assistente. Você escolhe reiniciar agora ou depois.

Git-native

Não tem login: quem assina o commit é o seu git.

Não existe tela de login, campo de senha nem token pra colar. Os commits usam o user.name / user.email do clone; push e pull usam o credential helper ou a chave SSH do sistema, igual ao git no terminal. Se o seu git consegue pushar, o Gabbro consegue.

  • Edição na branch ativa
    O commit cai na branch checked-out; as demais são somente leitura (git show). O app nunca faz checkout.
  • Sem lock-in
    O DBML é formato aberto e documentado. Nenhum app, e nenhuma empresa, fica dono do seu schema.
  • Só na sua máquina
    O servidor escuta em 127.0.0.1, com guarda anti DNS-rebinding e anti-CSRF. Pelo app ou pelo navegador, os dois falam com esse mesmo servidor local.
  • Amigável pra IA
    O schema é texto ao lado do código, então o agente que você já usa atualiza o diagrama no mesmo commit da migration. Doc viva porque é código, não porque alguém lembrou.
Open source

Código aberto de verdade, sob licença MIT

O Gabbro nasceu de uma dor própria, ver o schema do banco como ele merece, e fica melhor com mais mãos. Stack pequena, sem build, issues à mão. Traga uma ideia, um parser melhor ou um fix.

Ver issues abertas Dar uma estrela

PRs, ideias e bug reports são bem-vindos.

A história e o nome

A rocha que cristaliza devagar

O gabro é a rocha ígnea que se forma no fundo, esfriando bem devagar. Esse tempo deixa os cristais crescerem grandes e visíveis a olho nu, cada mineral com sua forma, encaixados numa estrutura legível. É a imagem exata de um bom schema: entidades bem definidas, relações claras, nada escondido.

Primo do Basalt: mesma lava, só que a que teve tempo de virar cristal. E a mesma tese nos dois projetos: arquivo de texto no seu git, sem nuvem e sem conta.

Instalar

Comece em minutos

1

Baixe o app

Instalador pro seu sistema, no botão acima. Não tem conta pra criar, nem servidor pra subir.

2

Gere o schema do seu banco

A CLI oficial do DBML lê o banco (ou um dump de DDL) e escreve o arquivo do diagrama.

npm i -g @dbml/cli db2dbml postgres $URL -o db.dbml
3

Versione e abra

Um repositório git só pro schema. Abra a pasta no Gabbro: dali em diante, editar é commitar.

git init && git add db.dbml git commit -m "schema inicial"
Baixar para Windows

App não assinado. O Windows pode mostrar o SmartScreen no 1º uso: Mais informações → Executar assim mesmo.

Sem identidade git na máquina? O Gabbro vira leitor puro e mostra o git config que libera a edição.