Was ist DBML und warum es zu SQL konvertieren?
DBML (Database Markup Language) ist ein Format von Holistics, genutzt im populären dbdiagram.io. Es lässt dich ein DB-Schema in einer sauberen, kompakten Form beschreiben, ohne die volle syntaktische Zeremonie von SQL.
In DBML schreibst du `Table users { id integer [pk] name varchar }` statt `CREATE TABLE users (id INTEGER PRIMARY KEY, name VARCHAR(255))`. Kürzer, lesbarer, einfacher zu reviewen. Aber irgendwann brauchst du echtes SQL, um Tabellen in einer echten DB anzulegen.
Dieses Tool konvertiert DBML zu SQL für PostgreSQL, MySQL oder SQLite. Unterstützt: Tabellen, Spalten mit Typen, Primary Keys, Auto-Increment, NOT NULL, UNIQUE, Defaults, Indexes, Foreign Keys (Refs), Enums. Zeigt auch Parse-Fehler mit Zeilennummern.
So nutzt du das Tool
- Dein DBML-Schema ins linke Panel pasten. Format folgt dbdiagram.io.
- Ziel-Dialekt wählen: PostgreSQL, MySQL oder SQLite. Jeder hat eigene Typen und Konventionen.
- Rechts kriegst du CREATE TABLE und ALTER TABLE fertig zum Pasten in eine Migration oder deine DB.
- Gibt es Parse-Fehler, erscheint die Liste drunter mit Zeilennummern. Input fixen und der Output updated.
- Ergebnis mit Copy-Button kopieren und in dein Migrations-Tool pasten: Prisma, Drizzle, Flyway, Liquibase, was auch immer.
- Der Format result-Toggle schickt den Output durch einen SQL-Formatter für saubere Einrückung. Aus für Rohausgabe.
Wann das nützlich ist
Klassische Szenarien:
- Neue DB von Null entwerfen. Du startest in DBML, weil es schneller Ideen festhält als volles SQL. Steht das Schema, generierst du CREATE TABLE.
- Diagramm mit einer Migration syncen. Du hast ein Diagramm in dbdiagram.io (oder exportiert aus einem anderen Tool) und willst Tabellen in einer neuen DB anlegen. Der Konverter kürzt den Weg.
- Technische Doku. DBML ist auch für Nicht-Engineers lesbar. SQL ist ausführbar. Einmal in DBML schreiben, SQL für Entwickler und Diagramm für den Produktmanager generieren.
- Schema-Code-Review vor einer Migration. Einen Fehler in DBML zu sehen ist einfacher als in vielen CREATE-TABLE-Zeilen.
- SQL lernen. Schau zu, wie aus einem simplen `Table users { id integer [pk] }` ein volles `CREATE TABLE "users" ("id" INTEGER PRIMARY KEY)` wird. Schöner Lernpfad.
Nach dem Generieren willst du das SQL vielleicht formatieren. Brauchst du ein ORM-Schema? Schau den SQL-zu-ORM-Konverter.