O ViewDB usa cookies do Google Analytics para contar visitas e ver quais páginas ajudam. Eles só são gravados se você aceitar. Política de privacidade

AjudaEntrarComeçar teste grátis

Como usar o ViewDB

Escreva o schema do banco em DBML, veja como diagrama e exporte como SQL ou código de ORM. Esta página explica a linguagem e cada parte do app.

DBML
Table users {  id integer [pk, increment]  email varchar(255) [unique, not null]} Table posts {  id integer [pk]  author_id integer [ref: > users.id]  title varchar(200)}
Um schema completo: duas tabelas e a relação entre elas.

Como o ViewDB funciona

Cada projeto é um texto DBML mais a posição das tabelas no diagrama. Você escreve o schema à esquerda, e o ViewDB desenha à direita enquanto você digita.

O texto é a fonte da verdade. Mover uma tabela só guarda onde ela fica. Todo o resto que você muda no diagrama ou na aba Schema volta para o DBML, mexendo só nas linhas que mudaram.

Quando o DBML tem um erro, o diagrama mantém a última versão que funcionou, e a lista abaixo do editor diz o que corrigir.

Salvamento

As mudanças são salvas um segundo depois que você para de digitar, e Ctrl/⌘+S salva na hora. O status na barra de ferramentas mostra a situação:

Salvo
Tudo está no servidor.
Salvando…
Um salvamento está a caminho.
Alterações não salvas
Você digitou desde o último salvamento. Ele sai em instantes.
Não foi possível salvar
O salvamento falhou. O ViewDB tenta de novo sozinho; clique no status para tentar agora.
Mudou em outro lugar
O projeto foi salvo em outro lugar enquanto você tinha mudanças não salvas. Veja abaixo.

O projeto é salvo mesmo com erros no DBML, então nada do que você está fazendo se perde. Sair da página antes de o salvamento terminar pede confirmação.

Mudanças feitas em outro lugar

A cada poucos segundos, o editor verifica se o projeto foi salvo em outra aba ou por um agente de IA. Se você não tem nada pendente, ele carrega a mudança sem avisar. Se você também estava editando, ele pergunta qual lado manter: Manter as minhas alterações ou Carregar o projeto salvo. O lado descartado fica guardado no histórico de versões.

Primeiros passos

  1. Na página de projetos, clique em Novo projeto. Comece em branco ou a partir de um dos schemas de exemplo.
  2. Escreva ou cole DBML na aba DBML. O diagrama acompanha enquanto você digita.
  3. Arraste as tabelas para onde quiser, ou deixe o Organizar posicionar tudo.
  4. Clique em Exportar para gerar SQL, código de ORM ou uma imagem, e em Compartilhar para mostrar o diagrama a alguém.

Traga um schema que você já tem

Importar, na página de projetos ou no editor, lê um arquivo .dbml, um projeto .viewdb ou SQL com comandos CREATE TABLE de PostgreSQL, MySQL ou SQL Server. Escolha um arquivo ou cole o texto. Arquivos podem ter até 900 KB.

No editor, a importação também pode substituir o projeto atual. O ViewDB guarda antes uma versão “Antes de importar”, para você poder voltar.

Exemplos, no editor, oferece os mesmos schemas de exemplo: substitua o código atual por um deles ou abra-o como projeto novo.

DBML em cinco minutos

DBML descreve tabelas, colunas e as ligações entre elas em texto simples. Estes cinco passos cobrem a maioria dos schemas.

  1. Uma tabela

    Escreva Table, um nome e as colunas entre chaves. Cada coluna é um nome e um tipo. Qualquer nome de tipo funciona, e o ViewDB o guarda como você escreveu.

    DBML
    Table users {  id integer  email varchar(255)  created_at timestamp}
  2. Chaves e regras

    As configurações vão entre colchetes depois do tipo: pk para a chave primária, increment, unique, not null e default. Um default entre crases, como now() aqui, é uma expressão SQL.

    DBML
    Table users {  id integer [pk, increment]  email varchar(255) [unique, not null]  created_at timestamp [default: `now()`]}
  3. Uma relação

    ref: > users.id numa coluna diz que muitos posts apontam para um usuário. O diagrama desenha uma linha entre as duas colunas.

    DBML
    Table users {  id integer [pk, increment]  email varchar(255) [unique, not null]} Table posts {  id integer [pk, increment]  author_id integer [not null, ref: > users.id]  title varchar(200) [not null]}
  4. Uma lista de valores

    Enum define os valores que uma coluna pode ter. Use o nome do enum como tipo da coluna.

    DBML
    Enum post_status {  draft  published  archived} Table posts {  id integer [pk, increment]  author_id integer [not null, ref: > users.id]  status post_status [default: 'draft']} Table users {  id integer [pk, increment]}
  5. Grupos e notas

    TableGroup desenha uma moldura em volta de tabelas relacionadas. Uma Note fora de qualquer tabela vira uma nota adesiva no diagrama.

    DBML
    Table users {  id integer [pk]} Table posts {  id integer [pk]  author_id integer [ref: > users.id]} TableGroup blog [color: #0f766e] {  users  posts} Note publishing {  'Posts are visible once status is published.'}

Isso basta para a maioria dos apps. A referência abaixo tem todas as opções.

Referência DBML

Tudo o que o ViewDB lê, com um exemplo para cada parte.

Tabelas e colunas

Uma tabela pode ficar num schema (billing.invoices; sem schema, ela vai para public), ter um apelido curto com as, uma headercolor e uma note. Cada linha dentro dela é uma coluna: o nome, o tipo e depois as configurações entre colchetes.

DBML
Table billing.invoices as I [headercolor: #2563eb, note: 'One per order'] {  id uuid [pk, default: `gen_random_uuid()`]  number varchar(20) [unique, not null, note: 'Shown to the customer']  total decimal(10,2) [not null, default: 0]  paid boolean [default: false]  tags text[]  currency char(3) [default: 'USD']}
pk ou primary key
A chave primária. Para uma chave com várias colunas, use Indexes.
increment
O número aumenta sozinho.
unique
Duas linhas não podem ter o mesmo valor.
not null / null
Se a coluna pode ficar vazia.
default: …
Um número, 'texto', true ou false, ou uma expressão SQL entre crases.
note: '…'
Um comentário sobre a coluna. As exportações SQL o mantêm como comentário.
ref: > tabela.coluna
Uma relação escrita na própria coluna.

Os tipos ficam como foram escritos, então varchar(255), decimal(10,2), text[] e nomes de enum funcionam. As exportações traduzem os tipos comuns para cada banco.

Índices

Um bloco Indexes no fim da tabela lista índices de uma ou mais colunas. Cada um pode ser pk (uma chave primária com várias colunas), unique e ter um name.

DBML
Table order_items {  order_id integer  product_id integer  sku varchar(40)   Indexes {    (order_id, product_id) [pk]    sku [unique, name: 'order_items_sku_key']  }}

Relações

Escreva a relação na coluna, ou numa linha própria começando com Ref, que também aceita um nome e ações. O símbolo diz quantas linhas há de cada lado:

>
Muitos para um: muitos pedidos, um usuário. < é o mesmo, escrito ao contrário.
-
Um para um.
<>
Muitos para muitos. As exportações criam a tabela de junção para você.
DBML
Table users {  id integer [pk]} Table profiles {  user_id integer [pk, ref: - users.id]} Table orders {  id integer [pk]  user_id integer} Table products {  id integer [pk]} Table tags {  id integer [pk]} Ref orders_user: orders.user_id > users.id [delete: cascade, update: no action]Ref: products.id <> tags.id

delete e update aceitam cascade, restrict, set null, set default ou no action. Duas relações entre as mesmas colunas são um erro.

Para uma chave com várias colunas, liste-as entre parênteses dos dois lados. Relações assim só podem ser alteradas no código.

DBML
Table orders {  region varchar(2)  number integer   Indexes {    (region, number) [pk]  }} Table shipments {  id integer [pk]  order_region varchar(2)  order_number integer} Ref: shipments.(order_region, order_number) > orders.(region, number)

Enums

Um enum lista os valores que uma coluna pode ter, um por linha. Coloque aspas em valores com espaço. Enums também podem ficar num schema: use o nome completo como tipo da coluna.

DBML
Enum billing.payment_method {  card  pix  "bank transfer"} Table billing.payments {  id integer [pk]  method billing.payment_method [not null]}

Grupos e notas adesivas

TableGroup lista as tabelas que ficam juntas numa moldura, com color e note opcionais. Uma tabela pertence a no máximo um grupo. Uma Note com nome, fora de qualquer tabela, vira uma nota adesiva; color: none deixa a nota sem preenchimento. Três aspas (''') guardam texto de várias linhas.

DBML
Table customers {  id integer [pk]} Table orders {  id integer [pk]  customer_id integer [ref: > customers.id]} TableGroup sales [color: #c2410c, note: 'Owned by the sales team'] {  customers  orders} Note release_plan [color: #F4D03F] {  '''  Orders ship in v2.  Customers already exist.  '''}

Comentários

// transforma o resto da linha em comentário, e /* */ um bloco inteiro. Ctrl/⌘+/ comenta as linhas selecionadas.

DBML
// A line comment/* A block comment   over two lines */Table audit_log {  id bigint [pk] // after a column too  payload json}

Limites

  • O DBML de um projeto pode ter até 500.000 caracteres.
  • Nomes de projeto podem ter até 120 caracteres.
  • Nomes digitados na aba Schema não podem ter aspas duplas.

Aceito, mas não desenhado

Estas partes do DBML são lidas sem erro, mas não aparecem no diagrama nem nas exportações:

Project
O nome do projeto, o tipo de banco e a nota.
Records
Linhas de exemplo.
checks e check:
Restrições de verificação. Ficam no código como foram escritas.
type do índice
Como type: hash. O índice em si é mantido.
Notas em valores de enum
Os valores são mantidos, as notas não.

TablePartial funciona: as colunas dele entram em cada tabela que o usa com ~nome.

Lendo um erro

Quando o DBML não pode ser lido, a barra de ferramentas conta os problemas e a lista abaixo do editor diz onde estão, como em “Line 3: Expect an identifier”. Clique numa linha para ir até ela.

DBML
Table users {  id integer [pk}
A linha é onde o leitor percebeu o problema, e pode ficar logo depois do erro de verdade. Aqui falta o ] na linha 2, e o erro aponta para a linha 3.

Escrevendo no editor

Problemas
O indicador na barra de ferramentas mostra Sem erros ou quantos problemas existem. Clique nele para ir ao primeiro.
Buscar e editar
Ctrl/⌘+F busca e substitui, Ctrl/⌘+Z desfaz, Ctrl/⌘+/ comenta linhas e Tab indenta. Colchetes e aspas fecham sozinhos.
Código e diagrama juntos
Mover o cursor para dentro de uma tabela, grupo ou nota seleciona o item no diagrama. Clicar nele no diagrama mostra o código ou o formulário dele.
O painel
Ctrl/⌘+B esconde ou mostra o editor. Arraste o divisor para mudar o tamanho, ou dê foco a ele e use as setas. Cada painel tem a própria chave de claro e escuro.
No celular
O editor, o diagrama e o assistente são vistas separadas. Troque entre elas pelas abas acima.

Trabalhando no diagrama

O diagrama é desenhado a partir do DBML, e quase tudo o que você faz nele volta para o código.

Navegar
Arraste o fundo para mover a vista, e role ou faça pinça para dar zoom, de 20% a 250%. Clique na porcentagem para voltar a 100%, ou em Ajustar para ver tudo.
Selecionar
Clique numa tabela para selecioná-la. Shift+clique adiciona tabelas à seleção, e Shift+arrastar desenha uma caixa em volta de várias.
Adicionar
Adicionar tabela, Adicionar grupo e Adicionar nota criam os itens na hora; Adicionar grupo coloca as tabelas selecionadas no grupo novo. Dê um duplo clique num espaço vazio para criar uma nota adesiva ali. Esses botões esperam enquanto o DBML tem erros.
Alterar
Arraste uma tabela para dentro ou para fora da moldura de um grupo para mudar o grupo dela. Arraste a borda direita para mudar a largura. Dê um duplo clique numa tabela, grupo ou relação para editar na aba Schema.
Ligar
Passe o mouse sobre uma coluna e um ponto aparece à direita dela. Arraste esse ponto até outra coluna para criar uma relação.
Cor
O botão de cor no cabeçalho de uma tabela, grupo ou nota escolhe uma cor pronta ou qualquer outra. Ele escreve headercolor ou color no código.
Ler as linhas
A legenda no canto mostra como a linha termina: uma barra para um, um garfo para muitos. Passar o mouse sobre uma tabela apaga as que não se ligam a ela.

Organizar

Organizar posiciona todas as tabelas de uma vez. Com o menu aberto, as teclas 1 a 4 escolhem uma opção. Um projeto sem posições salvas é organizado na primeira vez que você o abre.

Esquerda para direita
Tabelas referenciadas à esquerda, seguindo as relações.
Cima para baixo
Tabelas referenciadas no topo, seguindo as relações.
Floco de nevePro
As tabelas mais conectadas no centro, as relacionadas em volta.
CompactoPro
Tabelas agrupadas em linhas, o mais junto possível, sem seguir as relações.

Editando sem código

A aba Schema, ao lado de DBML, tem formulários para Tabelas, Refs, Enums, Grupos e Notas. Cada mudança reescreve só as linhas que afeta, então sua formatação e seus comentários continuam no lugar.

Tabelas
Nome, apelido, nota, cor, grupo e colunas, com tipo, chave primária, not null, unique, auto-incremento, default e nota. Mova ou remova colunas, ou exclua a tabela junto com as relações dela.
Refs
As duas pontas, o tipo e as ações ao excluir e ao atualizar. Uma relação escrita numa coluna vira uma linha Ref quando você salva.
Enums
Adicione, renomeie e remova valores, e veja quais colunas usam o enum.
Grupos e Notas
Nome, cor, nota e tabelas de cada grupo; texto e cor de cada nota adesiva.

Enquanto o DBML tem erros, os formulários mostram a última versão válida e não podem ser alterados. Corrija o código primeiro.

Exportando

Exportar transforma o schema atual em código ou imagem. Use Copiar para o código ou Baixar para salvar como arquivo.

PostgreSQL, MySQL, SQLite
Scripts CREATE TABLE com chaves, índices, enums e comentários.
Prisma
Um schema.prisma para PostgreSQL, MySQL ou SQLite.
Drizzle
Um schema.ts para PostgreSQL, MySQL ou SQLite.
DBML
O código exatamente como foi escrito, com erros e tudo.
ViewDB
Um arquivo .viewdb com o nome, o DBML e as posições do diagrama. Importar abre ele de novo.

As exportações de código precisam de um DBML sem erros.

Imagens

PNG e SVG salvam o diagrama como ele está agora, com o dobro da resolução da tela.

PNG
No Starter, o PNG tem um pequeno logo do ViewDB no canto.
PNGPro
PNG sem o logo.
SVGPro
Um arquivo vetorial que fica nítido em qualquer tamanho.

Compartilhando um projeto

Compartilhar dá acesso só de leitura. As pessoas veem o diagrama e baixam o DBML, mas não conseguem mudar nada.

Link público

Ligue o Link público e envie o endereço. Quem tiver o link abre o diagrama sem precisar de conta. Novo link troca o endereço, e o antigo para de funcionar.

Senha e validadePro

Uma senha (de 4 a 128 caracteres) e uma data final deixam o link privado e temporário. Deixe a data vazia e o link nunca expira.

Convidando pessoas

Na aba Pessoas, convide alguém pelo email. A pessoa entra com esse email, mesmo que crie a conta depois, e encontra o projeto em “Compartilhados comigo”. A vista dela se atualiza quando você salva, e você pode removê-la quando quiser.

No Starter, a página pública mostra um pequeno selo “Feito com ViewDB”.

Histórico de versõesPro

Histórico lista estados anteriores do projeto. Pré-visualize qualquer um, compare com o atual e traga de volta.

Guardadas para você
Enquanto você edita, o ViewDB guarda uma versão a cada 10 minutos, no máximo. Ele também guarda uma antes de uma importação, de um exemplo, de uma restauração, da edição de um agente ou de uma mudança do assistente.
Versões com nome
Salvar versão guarda o estado atual com um nome. Versões com nome nunca são removidas automaticamente; das outras, ficam as 100 mais recentes.
Pré-visualizar e comparar
Abra uma versão para ver o diagrama dela e como o DBML difere do atual ou da versão anterior. O editor fica só leitura enquanto você olha.
Restaurar
Restaurar traz a versão de volta. O estado que você deixa é guardado antes, e Desfazer na mensagem desfaz a restauração.
Mais
Renomeie ou exclua uma versão, use Duplicar como projeto ou baixe como .viewdb.

No Starter, as versões continuam sendo gravadas e aparecem quando você passa para o Pro.

Assistente de IAPro

Assistente abre uma conversa sobre o projeto em que você está. Ele lê o DBML atual e só fala deste schema.

Perguntar
Pergunte para que serve uma tabela, como modelar algo ou o que está errado. As sugestões ajudam a começar: “Explique este schema”, “Sugira melhorias para este modelo”, “Corrija os erros do DBML”.
Revisar mudanças
Peça uma mudança e a resposta vem como proposta. Ver mudanças lista as diferenças, e Aplicar as escreve no editor. Uma versão é guardada antes, e Ctrl/⌘+Z desfaz.
Mensagens
O assistente que vem com o ViewDB responde 20 mensagens por mês durante o teste e 200 no Pro.
Sua própria chave
Em Conta → Assistente de IA, adicione uma chave do Google Gemini, da OpenAI ou da Anthropic e escolha o modelo. A sua chave não tem limite mensal; o provedor cobra o uso de você.
A conversa
Ela dura enquanto o editor está aberto. Nova conversa começa do zero.

Conectando agentes de IAPro

Agentes como Claude e Cursor podem ler e editar seus projetos por MCP. Você aprova cada conexão, e cada mudança que eles fazem fica no histórico de versões como “Antes da edição do agente”.

Apps que se conectam

Claude (web e desktop)
Adicione o ViewDB como conector personalizado.
Claude Code
Adicione com um comando no terminal.
Cursor
Adicione no mcp.json.
Claude Desktop com chave
Instale o arquivo .mcpb e cole uma chave de API em vez de entrar com a conta.

O que um agente pode fazer

  • Listar seus projetos e ler o DBML e as versões deles.
  • Exportar um schema como SQL ou código de ORM.
  • Criar e renomear projetos, e mudar o schema deles.
  • Mostrar o diagrama dentro da conversa.

Chaves de API podem só ler, ou ler e editar. Revogue uma chave ou desconecte um app na mesma página.

Configurar um agenteConta → Agentes (MCP) tem o endereço do servidor e os passos para cada app.

Conta e planos

Perfil
Seu nome. A foto vem do GitHub ou do Google.
Preferências
O idioma do app e dos emails. Ele também está no menu da conta.
Segurança
Senha, entrada com GitHub e Google, e onde você está conectado.
Plano e cobrança
Seu plano, a data de renovação e o portal do Stripe para faturas e mudanças de plano.
Excluir conta
Apaga a conta e os projetos dela, e cancela a assinatura na hora.

O botão de sol e lua no topo alterna entre claro e escuro.

Planos

Toda conta pode começar com 3 dias de Pro, grátis, com um projeto. Depois, escolha Starter ou Pro.

Teste
Tudo do Pro, com um projeto e 20 mensagens do assistente.
Starter
Até 10 projetos, todas as exportações de código, PNG com o logo, dois layouts e compartilhamento.
Pro
Projetos ilimitados, PNG sem o logo e SVG, todos os layouts, histórico de versões, o assistente, agentes, e senha e validade nos links.
Só leitura
Quando o teste ou a assinatura termina, você ainda abre seus projetos, baixa o DBML e o .viewdb deles e pode excluí-los. Os links compartilhados continuam funcionando.
Comparar os planos

Atalhos de teclado

TeclasO que faz
Ctrl/⌘+SSalvar agora
Ctrl/⌘+BEsconder ou mostrar o editor
Ctrl/⌘+FBuscar e substituir no código
Ctrl/⌘+Z Ctrl/⌘+Shift+ZDesfazer e refazer
Ctrl/⌘+/Comentar linhas
1–4Escolher um layout, com o menu Organizar aberto
Shift+cliqueAdicionar uma tabela à seleção
Shift+arrastarSelecionar tabelas com uma caixa
Duplo cliqueNo fundo, criar uma nota adesiva
EscParar de editar uma nota, ou desfazer um nome sendo digitado
← →Mudar o tamanho dos painéis, com o divisor em foco
Enter Shift+EnterEnviar uma mensagem ao assistente, ou adicionar uma linha