Warum SQL zu einem ORM-Schema konvertieren?
Du hast schon eine Datenbank. Sie läuft, sie hat Tabellen. In einem neuen Projekt willst du jetzt eine ORM (Object-Relational Mapper) nutzen statt rohes SQL zu schreiben. Aber ORMs verlangen das Schema in ihrem eigenen Format: Prisma nutzt eine `.prisma`-Datei, Drizzle TypeScript-Code mit Helfern wie `pgTable`, TypeORM Klassen mit Dekoratoren, Sequelize `sequelize.define`-Aufrufe.
Du pastest `CREATE TABLE` und kriegst ein Schema in vier ORMs: Prisma, Drizzle, TypeORM, Sequelize. Das Tool erkennt: Spalten-Typen (`VARCHAR(255)` -> String, `INT` -> Int, `TIMESTAMP` -> DateTime), Nullability, Defaults, Primary Keys, Auto-Increment, Foreign Keys mit Relations und `ON DELETE CASCADE`.
Der Output ist bereit zum Pasten in dein Projekt, aber behandle ihn als Startpunkt: jede ORM hat eigene Konventionen, und du willst evtl. ein paar Dinge von Hand anpassen.
So nutzt du das Tool
- Deine `CREATE TABLE`-Statements ins linke Panel pasten. Mehrere Tabellen mit Foreign Keys sind okay.
- Die Ziel-ORM wählen: Prisma (populärste im Next.js-Ökosystem), Drizzle (typsicher, leicht), TypeORM (Klassiker mit Dekoratoren), Sequelize (am ältesten, für Node.js).
- Für Drizzle den Dialekt wählen: PostgreSQL, MySQL oder SQLite. Jeder nutzt einen anderen Helper (`pgTable`, `mysqlTable`, `sqliteTable`) und andere Typen.
- Rechts kriegst du den generierten Code. Mit Copy kopieren und in deine Schema-Datei pasten.
- Die Relations (Foreign Keys) reviewen. Das Tool emittet `@relation` in Prisma, `.references()` in Drizzle, `@ManyToOne` in TypeORM. Manche Relation-Richtungen (z. B. die Rückseite in Prisma) musst du von Hand ergänzen.
- Eine Parse-Fehler-Liste erscheint drunter, falls dein SQL Non-Standard-Syntax hat. Sie zeigt die Zeilen, die das Tool übersprungen hat.
Wann das nützlich ist
Klassische Szenarien:
- Bestehende DB in ein neues Projekt onboarden. Die Firma hat eine 5 Jahre alte PostgreSQL-DB, du schreibst ein neues Next.js-Frontend mit Prisma. CREATE TABLE mit `pg_dump --schema-only` exportieren, hier pasten, ein fast-fertiges `schema.prisma` bekommen.
- Von einer ORM zu einer anderen migrieren. Altes Projekt auf TypeORM, neues auf Drizzle. SQL aus TypeORM generieren (`typeorm migration:generate`), hier pasten, Drizzle-Schema kriegen.
- Unterschiede zwischen ORMs lernen. Ein simples CREATE TABLE pasten, das Ziel umschalten und sehen, wie dasselbe Schema in Prisma, Drizzle, TypeORM und Sequelize aussieht. Guter Vergleich.
- Team beitreten, das eine andere ORM nutzt. Du kannst Sequelize, gehst in ein Prisma-Projekt, willst sehen, wie dasselbe Schema in beiden aussieht.
- Schema-Code-Review vor einer neuen Migration. Prüfen, ob der ORM-Code konsistent mit dem DDL ist, das in der DB lebt.
Nach dem Generieren willst du das SQL evtl. formatieren (für Queries). Arbeitest du mit DBML? Schau den DBML-zu-SQL-Konverter.