Saltar al contenido

Esquema SQL a entidad TypeORM

Convierte declaraciones CREATE TABLE en clases de entidad TypeORM con decoradores y relaciones.

Entrada
Salida

Esquema SQL a entidad TypeORM

Pega una o varias declaraciones SQL CREATE TABLE y esta herramienta devuelve clases de entidad TypeORM listas para usar en un proyecto NestJS o Node.js — @Entity, @Column, @PrimaryGeneratedColumn y los decoradores de relaciones que TypeORM espera, generados directamente desde el esquema que ya tienes.

Las opciones controlan cómo salen las clases: elige postgresql, mysql o sqlite como base de datos destino, ya que nombres de tipos de columna como uuid, jsonb o tinyint solo existen en algunas de ellas. Las claves foráneas se convierten en pares @ManyToOne y @OneToMany, y una tabla de unión pura —dos claves foráneas y nada más— se reduce a una @ManyToMany adecuada con @JoinTable. Las columnas snake_case pueden maperse automáticamente a propiedades camelCase, con una opción name añadida donde los dos difieren, e índices y restricciones únicas se representan como decoradores @Index y @Unique a nivel de clase. Desactiva valores por defecto o detección de relaciones cuando solo quieras la forma de columna desnuda.

El analizador entiende identificadores entrecomillados, claves foráneas inline y a nivel de tabla, cláusulas CHECK y COMMENT, y ambos finales de línea Unix y Windows, así que un volcado de esquema copiado de psql, mysqldump o un archivo de migración funciona tal cual. Los esquemas muy grandes también se manejan, aunque el código generado por encima de 10 MB devuelve un mensaje pidiéndote que acortes la entrada en lugar de congelar la pestaña.

Todo funciona en tu navegador — ningún esquema, nombre de tabla o columna sale de tu dispositivo. Copia el resultado, descárgalo como archivo .txt para dividirlo en entidades por archivo tú mismo, o envíalo directamente de vuelta a la entrada para seguir refinando el mismo esquema.

Preguntas frecuentes

Qué relazioni detecta?
Las claves foráneas se convierten en pares @ManyToOne/@OneToMany. Una tabla compuesta exactamente por dos claves foráneas y nada más se reconoce como tabla de unión y se convierte en una @ManyToMany con @JoinTable en lugar de su propia clase.
Cómo se eligen los tipos de columna?
Cada tipo SQL se asigna al tipo de columna TypeORM más cercano para la base de datos destino que selecciones — por ejemplo uuid se mantiene como uuid en PostgreSQL pero se convierte en varchar(36) en MySQL y SQLite, ya que ninguno tiene una columna UUID nativa.
Puedo generar un archivo por entidad?
Sí. Activa "Dividir en un archivo por entidad" para obtener un encabezado de comentario y su propia declaración de importación para cada clase, lista para pegar en archivos *.entity.ts separados.
Qué sucede con las claves primarias compuestas?
Cada columna de una clave primaria compuesta obtiene su propio @PrimaryColumn(); el auto-incremento y la generación UUID solo se aplican a una clave de columna única.
Se carga mi esquema de base de datos en algún lugar?
No. El análisis y la generación de código se ejecutan completamente en tu navegador — el SQL que pegas nunca sale de tu dispositivo.