Herramienta de Inferencia de Esquema

Cada integración nueva empieza igual: una API devuelve un objeto JSON y necesitas un modelo donde guardarlo. Escribir 20 campos a mano es tedioso y propenso a errores. Esta herramienta analiza un objeto JSON de ejemplo, elige un tipo de columna para cada clave y genera un esquema listo para pegar en el formato que prefieras: SQL CREATE TABLE, esquema de Mongoose o definición de modelo de Sequelize.

Cómo inferir un esquema a partir de JSON

  1. 1

    Pega un objeto de ejemplo

    Introduce un objeto JSON, o un array de objetos (se lee el primer objeto del array). Usa un registro completo con todos los campos rellenos para que cada columna reciba un tipo.

  2. 2

    Elige el formato de salida

    SQL CREATE TABLE (estilo Postgres / MySQL / SQLite), Mongoose para apps de Node.js con MongoDB o Sequelize para apps relacionales de Node.js.

  3. 3

    Nombra la tabla o el modelo

    Define el nombre de la tabla en la salida SQL, o el nombre del esquema o modelo en la salida de Mongoose y Sequelize.

  4. 4

    Copia el esquema generado

    Pégalo directamente en una migración o en un archivo de modelo como punto de partida.

Cómo se infieren los tipos

La inferencia es una estimación. La herramienta lee los valores de un objeto de ejemplo y elige un tipo de columna para cada clave a partir del valor que ve. No compara registros ni deduce qué campos son opcionales, así que dale un objeto completo y representativo.

Correspondencia de tipos

Valor JSON Tipo SQL Tipo Mongoose Tipo Sequelize
42 (entero) INTEGER Number DataTypes.INTEGER
3.14 (decimal) DECIMAL(10,2) Number DataTypes.FLOAT
"hola" (cadena corta) VARCHAR(255) String DataTypes.STRING
cadena de más de 255 caracteres TEXT String DataTypes.STRING
"2026-04-18T10:00:00Z" TIMESTAMP Date DataTypes.DATE
"2026-04-18" DATE Date DataTypes.DATEONLY
true / false BOOLEAN Boolean DataTypes.BOOLEAN
null TEXT String DataTypes.STRING
[1, 2, 3] (array) JSON Object DataTypes.JSON
{ "nested": ... } (objeto) JSON Object DataTypes.JSON

Qué añade la salida SQL

El CREATE TABLE de SQL empieza siempre con una clave primaria autoincremental:

id INTEGER PRIMARY KEY AUTOINCREMENT,

Las salidas de Mongoose y Sequelize no añaden un campo id, porque ambas librerías lo crean por ti.

Valores por defecto y límites a tener en cuenta

  • Se lee un solo objeto. Si pegas un array, solo se inspecciona el primer elemento, así que sus campos definen todo el esquema.
  • Una clave ausente es una columna que no existe. Los campos que no están en el objeto de ejemplo simplemente no aparecen en la salida.
  • Los objetos y arrays anidados se convierten en una única columna JSON. La herramienta no los expande en subtablas, subesquemas ni claves foráneas.
  • No se generan restricciones. Las columnas se emiten sin NOT NULL, unicidad ni índices, así que todas admiten nulos hasta que las ajustes.

Consejos para un resultado más limpio

  • Usa un registro totalmente relleno. Un campo que sea null en tu ejemplo se tipa como texto/cadena, que rara vez es lo que quieres.
  • Renombra las palabras reservadas tras la generación. Campos como type, order o user necesitarán comillas en SQL.
  • Trata la salida como un andamiaje. Ajusta las longitudes de VARCHAR y la precisión de DECIMAL, añade índices, marca columnas como NOT NULL y elige claves reales antes de publicar.

Preguntas frecuentes

Un objeto o array anidado se asigna a una única columna JSON (JSON en SQL y Sequelize, un campo de tipo Object en Mongoose). La herramienta no expande las estructuras anidadas en subtablas ni subesquemas, así que tú mismo las aplanas o normalizas si lo necesitas.

No. Si pegas un array de objetos, solo se inspecciona el primer objeto y sus claves definen el esquema. Asegúrate de que ese primer registro tenga todos los campos que te importan, con un valor real en cada uno.

No. Cada columna se emite solo con un tipo, de modo que la salida no tiene claves foráneas, restricciones de unicidad, índices ni cláusulas NOT NULL. Añádelos a mano, porque codifican una intención que la herramienta no puede recuperar a partir de una muestra.

Elige SQL CREATE TABLE para una migración de base de datos relacional, Mongoose Schema para una app de Node.js sobre MongoDB, o Sequelize Model para una app de Node.js sobre una base de datos relacional a través del ORM Sequelize.

Herramientas relacionadas

Herramienta disponible en otros idiomas