Sări la conținut
Complet local

Schema SQL la entitate TypeORM

Convertiți instrucțiuni CREATE TABLE în clase de entitate TypeORM cu decoratori și relații.

Intrare
Ieșire

Schema SQL la entitate TypeORM

Lipiți una sau mai multe instrucțiuni SQL CREATE TABLE și acest instrument returnează clase de entitate TypeORM gata să fie integrate într-un proiect NestJS sau Node.js — @Entity, @Column, @PrimaryGeneratedColumn și decoratorii de relații pe care TypeORM îi așteaptă, generați direct din schema pe care o aveți deja.

Opțiunile controlează modul în care sunt generate clasele: alegeți postgres, mysql sau sqlite ca bază de date țintă, deoarece numiri de tip de coloană cum ar fi uuid, jsonb sau tinyint există doar pe unele dintre ele. Cheile externe devin perechi @ManyToOne și @OneToMany, iar o tabel de joncțiune pur — două chei externe și nimic altceva — se prăbușește într-o adevărată @ManyToMany cu @JoinTable. Coloanele cu snake_case pot fi mapate la proprietăți camelCase automat, cu o opțiune de nume adăugată ori de câte ori diferă, iar indicii și constrângerile unice sunt redate ca decoratori de clasă @Index și @Unique. Dezactivați valorile implicite sau detectarea relațiilor când doriți doar forma coloanei simple.

Parserul înțelege identificatori entre ghilimele, chei externe inline și la nivel de tabel, clauze CHECK și COMMENT, și terminații de linie Unix și Windows, deci o descărcare de schema copiată din psql, mysqldump sau un fișier de migrare funcționează normal. Schemele foarte mari sunt gestionate și, deși codul generat peste 10 MB returnează un mesaj cerând să scurtați intrarea în loc să înghețați fila.

Tot se execută în browserul dvs. — nicio schemă, nume de tabel sau coloană nu părăsește dispozitivul dvs. Copiați rezultatul, descărcați ca fișier .txt pentru a împărți în entități pe fișier singur, sau trimiteți-l direct înapoi la intrare pentru a continua rafinarea aceluiași schema.

FAQ

Ce relații detectează?
Cheile externe devin perechi @ManyToOne/@OneToMany. Un tabel compus din exact două chei externe și nimic altceva este recunoscut ca tabel de joncțiune și devine @ManyToMany cu @JoinTable în loc de propria sa clasă.
Cum sunt aleși tipurile de coloane?
Fiecare tip SQL este mapat la cel mai apropiat tip de coloană TypeORM pentru baza de date țintă pe care o selectați — de exemplu uuid rămâne uuid pe PostgreSQL dar devine varchar(36) pe MySQL și SQLite, deoarece nici una nu are o coloană UUID nativă.
Pot genera un fișier per entitate?
Da. Activați "Împărțiți într-un fișier per entitate" pentru a obține un antet de comentariu și propria instrucțiune de import pentru fiecare clasă, gata de lipit în fișiere *.entity.ts separate.
Ce se întâmplă cu cheile primare compuse?
Fiecare coloană a unei chei primare compuse primește propria sa @PrimaryColumn(); auto-increment și generarea UUID se aplică doar unei chei cu o singură coloană.
Este schema bazei de date încărcată undeva?
Nu. Analiza și generarea codului se execută în întregime în browserul dvs. — SQL-ul pe care îl lipiți nu părăsește niciodată dispozitivul dvs.