Recursos
Tabelas, colunas e relacionamentos são escritos em uma linguagem simples; ao lado, um diagrama ER é desenhado ao vivo, e cada alteração feita no diagrama é escrita de volta no código. O Tabliva mostra os problemas do esquema, sugere normalizações e gera o SQL e o arquivo de migração versionado que levam um banco de dados ao estado do código. PostgreSQL, MySQL / MariaDB e SQLite.
Principais recursos
- Uma linguagem de esquema legível
- Tabelas, tipos lógicos, chaves primárias e estrangeiras (->), índices (parciais e de expressão), restrições check e enums são escritos em arquivos .tabliva. Detalhes de cada dialeto são adicionados com anotações (@postgres(type: "jsonb")); views, triggers e funções, com blocos sql brutos. O editor tem realce de sintaxe, preenchimento automático e busca.
- Diagrama ER bidirecional
- O diagrama é atualizado enquanto você digita; em caso de erro de sintaxe, o último estado válido permanece e o erro é mostrado com a linha. Adicionar, renomear ou excluir tabelas, colunas, relacionamentos e índices, ou mudar um tipo no diagrama, reescreve apenas a linha de código correspondente; os comentários são mantidos. O layout fica em um arquivo separado (diagram.tabliva-layout.json).
- Problemas: 55 regras
- Chaves, sugestões de chaves estrangeiras ausentes com nível de confiança, tipos (por exemplo, float para valores monetários), índices, dados repetidos, nomes, estrutura e compatibilidade com o dialeto. Cada problema tem uma explicação simples e uma correção; as correções seguras são aplicadas de uma só vez. Ignorar um problema ou desativar uma regra é escrito no arquivo kurallar.tabliva.
- Normalização
- As dependências funcionais são declaradas no código com uma linha depends ou sugeridas a partir dos nomes das colunas. Para cada tabela, são mostrados os passos da 1FN à FNBC, correções com prévia de antes e depois (mover para outra tabela, nova tabela, tabela filha, cópia intencional) e o SQL de migração de dados para o dialeto.
- Plano de alterações e arquivos de migração
- O código é comparado com um destino (pasta de migrações, snapshot; no computador, um banco de dados ao vivo). Renomeações são detectadas; cada passo recebe rótulos de risco como perda de dados, reescrita da tabela ou bloqueio. O SQL é gerado para PostgreSQL, MySQL / MariaDB e SQLite; o arquivo de migração é gravado na pasta migrations/ com nome datado e seu checksum é adicionado a tabliva.sum.
- Importar um esquema existente
- Dumps SQL (pg_dump, mysqldump, SQLite .schema ou CREATE TABLE escrito à mão), DBML e outro projeto do Tabliva são lidos; escolhe-se um arquivo por tabela ou um arquivo único. Só o esquema é importado; as linhas INSERT e COPY são ignoradas. No computador, o esquema também pode ser lido diretamente de um banco de dados.
- Sincronização
- Origem e destino (código, snapshot, pasta de migrações; no computador, um banco de dados) são comparados lado a lado ou em coluna única, e a direção pode ser invertida. Alterações feitas no banco sem arquivo de migração aparecem como desvio; o script de sincronização é gerado a partir das alterações selecionadas.
- Documentação
- O dicionário de dados é salvo como HTML (um único arquivo que não carrega nada da rede), Markdown ou, pela janela de impressão, PDF. As descrições vêm dos comentários /// do código; uma descrição escrita aqui é escrita de volta no código. O diagrama ER é exportado como PNG / SVG claro ou escuro, e o esquema como SQL ou DBML.
- Dados de exemplo e histórico do esquema
- São gerados dados de exemplo que respeitam tipos, restrições e relacionamentos; a mesma semente sempre gera os mesmos dados (SQL, CSV ou JSON). O histórico do esquema é obtido dos arquivos de migração e dos snapshots; dois momentos quaisquer podem ser comparados.
- Banco de dados ao vivo (computador)
- O app para computador se conecta ao PostgreSQL e ao MySQL / MariaDB (com opções de SSL): importar o esquema do banco, sincronização, "Aplicar ao banco de dados" com confirmação (aceitar a perda de dados e digitar o nome do banco), carregar dados de exemplo e verificações de dados para os relacionamentos sugeridos. No navegador e no celular, esses recursos não aparecem.
- Pasta do projeto e compartilhamento
- Os projetos ficam neste dispositivo; em navegadores que conseguem gravar em pastas e no computador, um projeto pode ser vinculado a uma pasta e cada alteração é gravada nela (por exemplo, um repositório Git). Projetos são exportados e importados como ZIP; um arquivo, o projeto ou o SQL do plano podem ser compartilhados com o recurso de compartilhamento do dispositivo.
- Projeto de exemplo, backup e off-line
- Na primeira abertura, vem o esquema de uma loja com alguns problemas intencionais; "Adicionar o projeto de exemplo de novo" o traz de volta. "Fazer backup…" salva projetos e configurações em um único arquivo (sem os vínculos de pasta nem as senhas). Não é preciso conta; tudo, exceto o banco de dados ao vivo, funciona off-line.
Dispositivos e navegadores
- No computador, os arquivos do projeto e os destinos ficam à esquerda, e o código e o diagrama no centro; as visualizações (Editor, Alterações, Problemas, Normalização, Sincronização, Documentação, Ferramentas) são escolhidas na barra superior. No celular e no tablet na vertical, a navegação inferior tem Código, Diagrama, Problemas, Plano e Mais.
- Os recursos de banco de dados ao vivo (importar de um banco, banco de dados na Sincronização, "Aplicar ao banco de dados", carregar dados de exemplo, verificações de dados) existem só no app para computador. No navegador e no celular, gravam-se arquivos de migração ou o SQL é salvo e compartilhado.
- A gravação direta em uma pasta está disponível no Chrome e no Edge e no app para computador; no Safari, no Firefox e no celular, os projetos ficam neste dispositivo e são transferidos como ZIP.



Atalhos de teclado
No macOS são usados ⌘ e ⌥; no Windows e no Linux, Ctrl e Alt.
| Atalho | Ação |
|---|---|
| 1 – 7 | Visualizações |
| Ctrl/⌘ S | Salvar |
| Ctrl/⌘ O | Projetos |
| Ctrl/⌘ I | Importar |
| Ctrl/⌘ ⇧ P | Ver o plano |
| Ctrl/⌘ F | Buscar no código |
| Ctrl/⌘ Z · ⇧ Z | Desfazer · refazer |
| F2 | Renomear a tabela (diagrama) |
| ← → ↑ ↓ | Mover o cartão selecionado |
| Enter | Abrir a página da tabela |
| Delete | Excluir a tabela |
Em telas sensíveis ao toque, o diagrama é ampliado e movido com dois dedos; para desenhar um relacionamento, toque primeiro na coluna de origem e depois na de destino. Um toque longo no cartão de uma tabela abre o menu de contexto; menus e caixas de diálogo abrem de baixo para cima.
Obter o Tabliva
Experimente no navegador, sem instalação; para uso contínuo, adquira a versão para macOS, Windows ou Linux.