Pourquoi convertir du SQL vers un schéma ORM ?
Vous avez déjà une base de données. Elle fonctionne, elle a des tables. Maintenant, dans un nouveau projet, vous voulez utiliser un ORM (Object-Relational Mapper) plutôt que d'écrire du SQL brut. Mais les ORMs exigent que vous définissiez le schéma dans leur propre format : Prisma utilise un fichier `.prisma`, Drizzle du code TypeScript avec des helpers comme `pgTable`, TypeORM des classes avec décorateurs, Sequelize des appels `sequelize.define`.
Vous collez du `CREATE TABLE` et obtenez un schéma dans quatre ORMs : Prisma, Drizzle, TypeORM, Sequelize. L'outil reconnaît : types de colonnes (`VARCHAR(255)` -> String, `INT` -> Int, `TIMESTAMP` -> DateTime), nullability, defaults, primary keys, auto-increment, foreign keys avec relations et `ON DELETE CASCADE`.
La sortie est prête à coller dans votre projet, mais traitez-la comme un point de départ : chaque ORM a ses conventions et vous voudrez peut-être ajuster quelques choses à la main.
Mode d'emploi
- Collez vos instructions `CREATE TABLE` dans le panneau de gauche. Plusieurs tables avec foreign keys, pas de souci.
- Choisissez l'ORM cible : Prisma (le plus populaire dans l'écosystème Next.js), Drizzle (typé, léger), TypeORM (classique avec décorateurs), Sequelize (le plus ancien, pour Node.js).
- Pour Drizzle, choisissez le dialecte : PostgreSQL, MySQL ou SQLite. Chacun utilise un helper différent (`pgTable`, `mysqlTable`, `sqliteTable`) et des types différents.
- À droite, vous obtenez le code généré. Copiez avec le bouton Copier et collez-le dans votre fichier de schéma.
- Vérifiez les relations (foreign keys). L'outil émet `@relation` en Prisma, `.references()` en Drizzle, `@ManyToOne` en TypeORM. Certaines directions de relation (par exemple le côté inverse en Prisma) doivent être ajoutées à la main.
- Une liste d'erreurs de parsing apparaît en dessous si votre SQL a une syntaxe non standard. Elle vous montre les lignes que l'outil a sautées.
Quand c'est utile
Scénarios classiques :
- Intégration d'une base existante dans un nouveau projet. L'entreprise a une base PostgreSQL vieille de 5 ans, vous écrivez un nouveau front Next.js avec Prisma. Exportez les CREATE TABLE avec `pg_dump --schema-only`, collez ici, obtenez un `schema.prisma` quasi prêt.
- Migration d'un ORM à un autre. L'ancien projet sous TypeORM, le nouveau sous Drizzle. Générez le SQL depuis TypeORM (`typeorm migration:generate`), collez ici, obtenez le schéma Drizzle.
- Apprendre les différences entre ORMs. Collez un CREATE TABLE simple, changez la cible et observez à quoi ressemble le même schéma en Prisma, Drizzle, TypeORM et Sequelize. Une bonne façon de comparer.
- Intégrer une équipe qui utilise un autre ORM. Vous connaissez Sequelize, vous rejoignez un projet Prisma, vous voulez voir à quoi ressemble le même schéma dans les deux.
- Revue de code de schéma avant une nouvelle migration. Vérifiez que le code ORM est cohérent avec le DDL qui vit dans la base.
Après avoir généré le schéma, vous voudrez peut-être formater le SQL (pour les requêtes). Vous travaillez avec DBML ? Voir le convertisseur DBML vers SQL.