¿Por qué convertir SQL a un schema de ORM?
Ya tienes una base de datos. Funciona, tiene tablas. Ahora en un nuevo proyecto quieres usar un ORM (Object-Relational Mapper) en lugar de escribir SQL crudo. Pero los ORMs requieren que definas el schema en su propio formato: Prisma usa un fichero `.prisma`, Drizzle usa código TypeScript con helpers como `pgTable`, TypeORM usa clases con decoradores, Sequelize usa llamadas `sequelize.define`.
Pegas `CREATE TABLE` y obtienes un schema en cuatro ORMs: Prisma, Drizzle, TypeORM, Sequelize. La herramienta reconoce: tipos de columna (`VARCHAR(255)` -> String, `INT` -> Int, `TIMESTAMP` -> DateTime), nullability, defaults, primary keys, auto-increment, foreign keys con relaciones y `ON DELETE CASCADE`.
La salida está lista para pegar en tu proyecto, pero trátala como punto de partida: cada ORM tiene sus propias convenciones y quizá quieras ajustar algunas cosas a mano.
Cómo usarla
- Pega tus sentencias `CREATE TABLE` en el panel izquierdo. Múltiples tablas con foreign keys está bien.
- Elige el ORM destino: Prisma (el más popular en el ecosistema Next.js), Drizzle (type-safe, ligero), TypeORM (clásico con decoradores), Sequelize (el más antiguo, para Node.js).
- Para Drizzle, elige el dialecto: PostgreSQL, MySQL o SQLite. Cada uno usa un helper distinto (`pgTable`, `mysqlTable`, `sqliteTable`) y tipos distintos.
- A la derecha obtienes el código generado. Copia con el botón Copiar y pega en tu fichero de schema.
- Revisa las relaciones (foreign keys). La herramienta emite `@relation` en Prisma, `.references()` en Drizzle, `@ManyToOne` en TypeORM. Algunas direcciones de relación (p. ej. el lado inverso en Prisma) necesitan añadirse a mano.
- Una lista de errores de parseo aparece debajo si tu SQL tiene sintaxis no estándar. Te mostrará las líneas que la herramienta saltó.
Cuándo es útil
Escenarios clásicos:
- Onboarding de una base de datos existente en un proyecto nuevo. La empresa tiene una base PostgreSQL de 5 años, estás escribiendo un nuevo front Next.js con Prisma. Exporta CREATE TABLE con `pg_dump --schema-only`, pega aquí, obtén un `schema.prisma` casi listo.
- Migrar de un ORM a otro. El proyecto antiguo en TypeORM, el nuevo en Drizzle. Genera SQL desde TypeORM (`typeorm migration:generate`), pega aquí, obtén el schema Drizzle.
- Aprender diferencias entre ORMs. Pega un CREATE TABLE simple, cambia el destino y mira cómo se ve el mismo schema en Prisma, Drizzle, TypeORM y Sequelize. Buena forma de comparar.
- Unirte a un equipo que usa un ORM distinto. Sabes Sequelize, te unes a un proyecto Prisma, quieres ver cómo se ve el mismo schema en ambos.
- Revisión de código de schema antes de una nueva migración. Comprueba si el código del ORM es consistente con el DDL que vive en la base de datos.
Tras generar el schema, quizá quieras formatear el SQL (para queries). ¿Trabajas con DBML? Mira el conversor DBML a SQL.