Zum Inhalt springen
100% lokal

SQL-Schema zu TypeORM-Entität

Wandeln Sie CREATE TABLE-Anweisungen in TypeORM-Entitätsklassen mit Dekoratoren und Relationen um.

Eingabe

SQL-Schema zu TypeORM-Entität

Fügen Sie ein oder mehrere SQL CREATE TABLE-Anweisungen ein, und dieses Tool gibt Ihnen TypeORM-Entitätsklassen aus, die Sie direkt in ein NestJS- oder Node.js-Projekt einfügen können — @Entity, @Column, @PrimaryGeneratedColumn und die Relationsdekoratoren, die TypeORM erwartet, generiert direkt aus Ihrem vorhandenen Schema.

Optionen steuern, wie die Klassen ausgegeben werden: Wählen Sie postgres, mysql oder sqlite als Zieldatenbank, da Spaltentypnamen wie uuid, jsonb oder tinyint nur auf einigen von ihnen existieren. Fremdschlüssel werden zu @ManyToOne und @OneToMany Paaren, und eine reine Verknüpfungstabelle — zwei Fremdschlüssel und sonst nichts — wird zu einem echten @ManyToMany mit @JoinTable zusammengefasst. Snake_case Spalten können automatisch auf camelCase Eigenschaften abgebildet werden, mit einer hinzugefügten name Option überall dort, wo sich die zwei unterscheiden, und Indizes sowie Unique-Constraints werden als @Index und @Unique Dekoratoren auf Klassenebene gerendert. Deaktivieren Sie Standardwerte oder Relationserkennung, wenn Sie nur die reine Spaltenform möchten.

Der Parser verarbeitet Anführungszeichen bei Bezeichnern, Inline- und Tabellen-Fremdschlüssel, CHECK und COMMENT Klauseln sowie Unix- und Windows-Zeilenumbrüche, sodass ein Schema-Dump aus psql, mysqldump oder einer Migration File sofort funktioniert. Sehr große Schemas werden auch bearbeitet, aber wenn generierter Code 10 MB übersteigt, erhalten Sie eine Nachricht, dass Sie die Eingabe kürzen sollen, anstatt den Tab einzufrieren.

Alles läuft in Ihrem Browser — kein Schema, Tabellenname oder Spalte verlässt Ihren Computer. Kopieren Sie das Ergebnis, laden Sie es als .txt Datei herunter, um die Entitäten selbst in mehrere Dateien zu splitten, oder geben Sie es direkt zurück in die Eingabe, um das gleiche Schema weiter zu verfeinern.

Häufige Fragen

Welche Relationen erkennt das Tool?
Fremdschlüssel werden zu @ManyToOne/@OneToMany Paaren. Eine Tabelle, die aus genau zwei Fremdschlüsseln und nichts anderem besteht, wird als Verknüpfungstabelle erkannt und wird zu einer @ManyToMany mit @JoinTable anstelle einer eigenen Klasse.
Wie werden Spaltentypypen gewählt?
Jeder SQL-Typ wird auf den nächsten TypeORM-Spaltentyp für die ausgewählte Zieldatenbank abgebildet — zum Beispiel bleibt uuid auf PostgreSQL uuid, wird aber auf MySQL und SQLite zu varchar(36), da keine native UUID-Spalte vorhanden ist.
Kann ich eine Datei pro Entität generieren?
Ja. Aktivieren Sie "In eine Datei pro Entität aufteilen", um einen Kommentar-Header und eine eigene Import-Anweisung für jede Klasse zu erhalten, bereit zum Einfügen in separate *.entity.ts Dateien.
Was passiert mit zusammengesetzten Primärschlüsseln?
Jede Spalte eines zusammengesetzten Primärschlüssels erhält seinen eigenen @PrimaryColumn(); Auto-Increment und UUID-Generierung gelten nur für einen einzelspaltigen Schlüssel.
Wird mein Datenbankschema irgendwohin hochgeladen?
Nein. Analyse und Code-Generierung finden vollständig in Ihrem Browser statt — das SQL, das Sie einfügen, verlässt niemals Ihren Computer.