Ferramenta de Inferência de Esquema

Toda nova integração começa igual: uma API devolve um objeto JSON e você precisa de um modelo para armazená-lo. Digitar 20 campos à mão é cansativo e sujeito a erros. Esta ferramenta analisa um objeto JSON de exemplo, escolhe um tipo de coluna para cada chave e gera um esquema pronto para colar no formato que você preferir: SQL CREATE TABLE, esquema Mongoose ou definição de modelo Sequelize.

Como inferir um esquema a partir de JSON

  1. 1

    Cole um objeto de exemplo

    Insira um objeto JSON, ou um array de objetos (o primeiro objeto do array é lido). Use um registro completo com todos os campos preenchidos para que cada coluna receba um tipo.

  2. 2

    Escolha o formato de saída

    SQL CREATE TABLE (estilo Postgres / MySQL / SQLite), Mongoose para apps Node.js com MongoDB ou Sequelize para apps relacionais Node.js.

  3. 3

    Dê um nome à tabela ou ao modelo

    Define o nome da tabela na saída SQL, ou o nome do esquema ou modelo na saída Mongoose e Sequelize.

  4. 4

    Copie o esquema gerado

    Cole-o diretamente em uma migração ou em um arquivo de modelo como ponto de partida.

Como os tipos são inferidos

A inferência é uma estimativa. A ferramenta lê os valores de um objeto de exemplo e escolhe um tipo de coluna para cada chave a partir do valor que vê. Ela não compara registros nem deduz quais campos são opcionais, então forneça um objeto completo e representativo.

Mapeamento de tipos

Valor JSON Tipo SQL Tipo Mongoose Tipo Sequelize
42 (inteiro) INTEGER Number DataTypes.INTEGER
3.14 (decimal) DECIMAL(10,2) Number DataTypes.FLOAT
"olá" (string curta) VARCHAR(255) String DataTypes.STRING
string com mais 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

O que a saída SQL acrescenta

O CREATE TABLE SQL começa sempre com uma chave primária autoincremental:

id INTEGER PRIMARY KEY AUTOINCREMENT,

As saídas Mongoose e Sequelize não acrescentam um campo id, porque as duas bibliotecas criam um para você.

Padrões e limites a ter em mente

  • Um único objeto é lido. Se você colar um array, apenas o primeiro elemento é inspecionado, então são os campos dele que definem todo o esquema.
  • Uma chave ausente é uma coluna ausente. Campos que não estão no objeto de exemplo simplesmente não aparecem na saída.
  • Objetos e arrays aninhados viram uma única coluna JSON. A ferramenta não os expande em subtabelas, subesquemas ou chaves estrangeiras.
  • Nenhuma restrição é gerada. As colunas são emitidas sem NOT NULL, unicidade ou índices, então todas aceitam nulos até você restringi-las.

Dicas para um resultado mais limpo

  • Use um registro totalmente preenchido. Um campo que seja null no seu exemplo é tipado como texto/string, o que raramente é o que você quer.
  • Renomeie palavras reservadas após a geração. Campos como type, order ou user precisarão de aspas em SQL.
  • Trate a saída como um andaime. Ajuste os comprimentos de VARCHAR e a precisão de DECIMAL, adicione índices, marque colunas como NOT NULL e escolha chaves reais antes de publicar.

Perguntas frequentes

Um objeto ou array aninhado é mapeado para uma única coluna JSON (JSON em SQL e Sequelize, um campo do tipo Object no Mongoose). A ferramenta não expande estruturas aninhadas em subtabelas ou subesquemas, então você mesmo as achata ou normaliza se precisar.

Não. Se você colar um array de objetos, apenas o primeiro objeto é inspecionado e são as chaves dele que definem o esquema. Garanta que esse primeiro registro tenha todos os campos que importam, com um valor real em cada um.

Não. Cada coluna é emitida apenas com um tipo, então a saída não tem chaves estrangeiras, restrições de unicidade, índices nem cláusulas NOT NULL. Adicione-os à mão, pois eles codificam uma intenção que a ferramenta não consegue recuperar a partir de uma amostra.

Escolha SQL CREATE TABLE para uma migração de banco de dados relacional, Mongoose Schema para um app Node.js sobre MongoDB, ou Sequelize Model para um app Node.js sobre um banco relacional por meio do ORM Sequelize.

Ferramentas relacionadas

Ferramenta disponível em outros idiomas