Vai al contenuto
100% locale

Schema SQL a entità TypeORM

Converti istruzioni CREATE TABLE in classi entity TypeORM con decoratori e relazioni.

Ingresso
Uscita

Schema SQL a entità TypeORM

Incolla una o più istruzioni SQL CREATE TABLE e questo strumento restituisce classi entity TypeORM pronte da inserire in un progetto NestJS o Node.js — @Entity, @Column, @PrimaryGeneratedColumn e i decoratori di relazioni che TypeORM si aspetta, generati direttamente dallo schema che hai già.

Le opzioni controllano come escono le classi: scegli postgresql, mysql o sqlite come database di destinazione, poiché nomi di tipi di colonna come uuid, jsonb o tinyint esistono solo su alcuni di essi. Le chiavi esterne diventano coppie @ManyToOne e @OneToMany, e una tabella di giunzione pura — due chiavi esterne e nulla di più — diventa una @ManyToMany adeguata con @JoinTable. Le colonne snake_case possono essere mappate automaticamente a proprietà camelCase, con un'opzione name aggiunta ovunque i due differiscono, e gli indici e i vincoli di unicità si rendono come decoratori @Index e @Unique a livello di classe. Disabilita i valori predefiniti o il rilevamento delle relazioni quando vuoi solo la forma di colonna nuda.

Il parser comprende identificatori tra virgolette, chiavi esterne inline e a livello di tabella, clausole CHECK e COMMENT, e terminazioni di riga Unix e Windows, quindi un dump di schema copiato da psql, mysqldump o un file di migrazione funziona così com'è. Gli schemi molto grandi vengono gestiti, anche se il codice generato al di sopra di 10 MB restituisce un messaggio che ti chiede di abbreviare l'input piuttosto che congelare la scheda.

Tutto viene eseguito nel tuo browser — nessuno schema, nome di tabella o colonna esce dal tuo dispositivo. Copia il risultato, scaricalo come file .txt per dividerlo in entità per file tu stesso, o reinvialo direttamente all'input per continuare a perfezionare lo stesso schema.

FAQ

Quali relazioni rileva?
Le chiavi esterne diventano coppie @ManyToOne/@OneToMany. Una tabella composta esattamente da due chiavi esterne e nulla di più è riconosciuta come tabella di giunzione e diventa una @ManyToMany con @JoinTable invece della sua propria classe.
Come vengono scelti i tipi di colonna?
Ogni tipo SQL viene mappato al tipo di colonna TypeORM più vicino per il database di destinazione che selezioni — ad esempio uuid rimane uuid su PostgreSQL ma diventa varchar(36) su MySQL e SQLite, poiché nessuno dei due ha una colonna UUID nativa.
Posso generare un file per entità?
Sì. Abilita "Dividi in un file per entità" per ottenere un'intestazione di commento e la sua propria istruzione di importazione per ogni classe, pronta da incollare in file *.entity.ts separati.
Cosa succede alle chiavi primarie composite?
Ogni colonna di una chiave primaria composita ottiene il suo proprio @PrimaryColumn(); l'auto-incremento e la generazione UUID si applicano solo a una chiave a colonna singola.
Lo schema del mio database viene caricato da qualche parte?
No. L'analisi e la generazione di codice vengono eseguite interamente nel tuo browser — l'SQL che incolla non esce mai dal tuo dispositivo.