Aller au contenu
Tout en local

Schéma SQL vers entité TypeORM

Transformez les déclarations CREATE TABLE en classes d'entité TypeORM avec décorateurs et relations.

Entrée
Sortie

Schéma SQL vers entité TypeORM

Collez une ou plusieurs déclarations SQL CREATE TABLE et cet outil vous renvoie des classes d'entité TypeORM prêtes à intégrer dans un projet NestJS ou Node.js — @Entity, @Column, @PrimaryGeneratedColumn et les décorateurs de relations que TypeORM attend, générés directement à partir du schéma que vous avez déjà.

Les options contrôlent la façon dont les classes sont générées : choisissez postgresql, mysql ou sqlite comme base de données cible, car les noms de types de colonne comme uuid, jsonb ou tinyint n'existent que sur certaines d'entre elles. Les clés étrangères deviennent des paires @ManyToOne et @OneToMany, et une table de jonction pure — deux clés étrangères et rien d'autre — devient une @ManyToMany appropriée avec @JoinTable. Les colonnes snake_case peuvent être automatiquement mappées aux propriétés camelCase, avec une option name ajoutée partout où les deux diffèrent, et les index et contraintes d'unicité sont rendus en tant que décorateurs @Index et @Unique au niveau de la classe. Désactivez les valeurs par défaut ou la détection des relations lorsque vous voulez seulement la forme de colonne nue.

L'analyseur comprend les identificateurs entre guillemets, les clés étrangères inline et au niveau de la table, les clauses CHECK et COMMENT, et les fins de ligne Unix et Windows, donc un export de schéma copié de psql, mysqldump ou un fichier de migration fonctionne tel quel. Les très grands schémas sont également traités, bien que le code généré au-delà de 10 Mo renvoie un message vous demandant de raccourcir l'entrée plutôt que de geler l'onglet.

Tout s'exécute dans votre navigateur — aucun schéma, nom de table ou colonne ne quitte votre appareil. Copiez le résultat, téléchargez-le en tant que fichier .txt pour le diviser vous-même en entités par fichier, ou renvoyez-le directement à l'entrée pour continuer à affiner le même schéma.

FAQ

Quelles relations détecte-t-il ?
Les clés étrangères deviennent des paires @ManyToOne/@OneToMany. Une table composée exactement de deux clés étrangères et rien d'autre est reconnue comme une table de jonction et devient une @ManyToMany avec @JoinTable au lieu de sa propre classe.
Comment les types de colonnes sont-ils choisis ?
Chaque type SQL est mappé au type de colonne TypeORM le plus proche pour la base de données cible que vous sélectionnez — par exemple uuid reste uuid sur PostgreSQL mais devient varchar(36) sur MySQL et SQLite, car aucun des deux n'a de colonne UUID native.
Puis-je générer un fichier par entité ?
Oui. Activez "Diviser en un fichier par entité" pour obtener un en-tête de commentaire et sa propre déclaration d'importation pour chaque clase, prêt à coller dans des fichiers *.entity.ts séparés.
Qu'advient-il des clés primaires composées ?
Chaque colonne d'une clé primaire composite obtient son propre @PrimaryColumn() ; l'auto-incrément et la génération UUID s'appliquent uniquement à une clé de colonne unique.
Mon schéma de base de données est-il téléchargé quelque part ?
Non. L'analyse et la génération de code s'exécutent entièrement dans votre navigateur — le SQL que vous collez ne quitte jamais votre appareil.