Zum Hauptinhalt springen
usedby

Idempotente Schemaverwaltung mit sqldef v4.0

Sqldef synchronisiert den Zustand Ihres Datenbankschemas mit einfachem SQL-DDL statt mit einer proprietären DSL. Das Tool spricht Entwickler an, die einen Sollzustand deklarieren und den Abgleich einer Diff-Engine überlassen wollen.

Das Versprechen

Sqldef synchronisiert den Zustand Ihres Datenbankschemas mit einfachem SQL-DDL statt mit einer proprietären DSL. Das Tool spricht Entwickler an, die einen Sollzustand deklarieren und den Abgleich einer Diff-Engine überlassen wollen, über MySQL, PostgreSQL, SQLite oder SQL Server hinweg (offizielle Dokumentation).

Unter der Haube

Takashi Kokubun, Committer im Ruby-Core-Team, betreut das Projekt, das Ende 2025 Version 4.0 erreicht hat (GitHub). Dieses Release brachte eine entscheidende Änderung: --dry-run ist jetzt der Standardmodus, um versehentlichen Datenverlust beim Anwenden eines Schemas zu verhindern (GitHub Release #1094).

Das Tool lässt sich in moderne LLM-Workflows einbinden und enthält ausdrücklich Befehle für automatisierte Reviews mit „Claude Code“ (GitHub Issue #1048). So können Teams die Validierung erzeugter Diffs in ihren CI/CD-Pipelines mit diesen integrierten Review-Funktionen automatisieren.

Die Diff-Engine arbeitet allerdings rein strukturell und kommt mit komplexen Migrationen, bei denen Daten bewegt werden, nicht zurecht. Wenn Sie eine neue Spalte mit NOT NULL vor dem Anwenden einer Constraint mit vorhandenen Daten befüllen müssen, orchestriert sqldef diese Zwischenschritte nicht (HN 2026).

Für PostgreSQL-Nutzer entstehen weitere technische Schulden, weil in v4 der Fallback-Parser libpg_query entfernt wurde. Bestimmte seltene, PG-spezifische Syntax kann jetzt Parsing-Fehler auslösen, wenn der interne Kern-Parser sie nicht unterstützt (GitHub v4-migration.md).

Noch wissen wir nicht, ob das Projekt jemals Enterprise-Support anbieten wird, denn es bleibt strikt Community-getrieben.

Unsere Einschätzung

Sqldef ist die richtige Wahl für Teams, die keine weitere Abstraktion wie die DSL von Prisma oder die HCL von Atlas lernen wollen. Für die Standard-Synchronisierung von Schemas ist das Tool zuverlässig, sofern Sie das Nachbefüllen von Daten bei komplexen Übergängen von Hand erledigen. Setzen Sie es für Standarddienste in der Produktion ein, aber vertrauen Sie der Diff-Engine bei DROP-Anweisungen in kritischen Umgebungen nicht blind.