Features
Tables, columns and relationships are written in a plain language; an ER diagram is drawn live beside them, and every change made in the diagram is written back to the code. Tabliva shows problems in the schema, suggests normalization and generates the SQL and the versioned migration file that bring a database to the state in the code. PostgreSQL, MySQL / MariaDB and SQLite.
Key features
- A readable schema language
- Tables, logical types, primary and foreign keys (->), indexes (partial and expression indexes), checks and enums are written in .tabliva files. Dialect-specific details are added with annotations (@postgres(type: "jsonb")); views, triggers and functions with raw sql blocks. The editor has syntax highlighting, completion and find.
- Two-way ER diagram
- The diagram updates as you type; on a syntax error the last valid state stays and the error is shown with its line. Adding, renaming or deleting tables, columns, relationships and indexes, or changing a type in the diagram rewrites only the relevant line of code; comments are kept. The layout is kept in a separate file (diagram.tabliva-layout.json).
- Problems: 55 rules
- Keys, missing foreign key suggestions with a confidence level, types (e.g. float for money), indexes, duplicated data, naming, structure and dialect compatibility. Every problem has a plain explanation and a fix; safe fixes can be applied all at once. Ignoring a problem or turning a rule off is written to the kurallar.tabliva file.
- Normalization
- Functional dependencies are declared in code with a depends line or suggested from column names. For each table, the steps from 1NF to BCNF, fixes with a before / after preview (move to another table, new table, child table, deliberate copy) and data migration SQL for the dialect are shown.
- Change plan and migration files
- The code is compared with a target (migrations folder, snapshot; on the desktop, a live database). Renames are detected; each step is labelled with risks such as data loss, table rewrite or locking. SQL is generated for PostgreSQL, MySQL / MariaDB and SQLite; the migration file is written to the migrations/ folder with a dated name and its checksum is added to tabliva.sum.
- Import an existing schema
- SQL dumps (pg_dump, mysqldump, SQLite .schema or hand-written CREATE TABLE), DBML and another Tabliva project are read; one file per table or a single file can be chosen. Only the schema is taken; INSERT and COPY lines are skipped. On the desktop, the schema can also be read directly from a database.
- Sync
- Source and target (code, snapshot, migrations folder; on the desktop, a database) are compared side by side or as a unified diff, and the direction can be swapped. Changes made in the database without a migration file are shown as drift; the sync script is generated from the selected changes.
- Documentation
- The data dictionary is saved as HTML (a single file that loads nothing from the network), Markdown or, through the print dialog, PDF. Descriptions come from /// comments in the code; a description written here is written back to the code. The ER diagram is exported as PNG / SVG in light or dark, and the schema as SQL or DBML.
- Sample data and schema history
- Sample data that respects types, constraints and relationships is generated; the same seed always gives the same data (SQL, CSV or JSON). Schema history is built from migration files and snapshots; any two moments can be compared.
- Live database (desktop)
- The desktop application connects to PostgreSQL and MySQL / MariaDB (with SSL options): importing the schema from the database, Sync, a confirmed "Apply to database" (confirming data loss and typing the database name), loading sample data and data checks for suggested relationships. These features are not shown in the browser or on phones.
- Project folder and sharing
- Projects are kept on this device; in browsers that can write to folders and on the desktop, a project can be connected to a folder and every change is written there (e.g. a Git repository). Projects are exported and imported as ZIP; a file, the project or the plan's SQL can be shared with the device's share feature.
- Sample project, backup and offline
- On first launch a shop schema with a few deliberate problems is included; "Add the sample project again" brings it back. "Back up…" saves projects and settings to a single file (folder connections and passwords are not included). No account is needed; everything except the live database works offline.
Devices and browsers
- On the desktop, project files and targets are on the left, with the code and diagram in the middle; views (Editor, Changes, Problems, Normalization, Sync, Docs, Tools) are chosen from the bar at the top. On phones and tablets in portrait, the bottom navigation has Code, Diagram, Problems, Plan and More.
- Live database features (importing from a database, a database in Sync, "Apply to database", loading sample data, data checks) are only in the desktop application. In the browser and on phones, migration files are written or SQL is saved and shared.
- Writing directly to a folder is available in Chrome and Edge and in the desktop application; in Safari, Firefox and on phones, projects are kept on this device and moved as ZIP files.



Keyboard shortcuts
⌘ and ⌥ are used on macOS; Ctrl and Alt on Windows and Linux.
| Shortcut | Action |
|---|---|
| 1 – 7 | Views |
| Ctrl/⌘ S | Save |
| Ctrl/⌘ O | Projects |
| Ctrl/⌘ I | Import |
| Ctrl/⌘ ⇧ P | See the plan |
| Ctrl/⌘ F | Find in code |
| Ctrl/⌘ Z · ⇧ Z | Undo · redo |
| F2 | Rename table (diagram) |
| ← → ↑ ↓ | Move the selected card |
| Enter | Open the table sheet |
| Delete | Delete table |
On touch screens the diagram is zoomed and scrolled with two fingers; to draw a relationship, tap the source column and then the target column. A long press on a table card opens the context menu; menus and dialogs open from the bottom.
Get Tabliva
Try it in the browser without installation; for continued use, purchase the version for macOS, Windows or Linux.