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
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
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
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
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
nullno seu exemplo é tipado como texto/string, o que raramente é o que você quer. - Renomeie palavras reservadas após a geração. Campos como
type,orderouuserprecisarã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 NULLe 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
Gerador de Cartão CSS
Crie o CSS de um contêiner de cartão: fundo, borda, raio dos cantos, espaçamento interno e sombra suave, com pré-visualização imediata e código para copiar e colar.
Conversor de Tamanho de Arquivo
Converta entre bytes, KB, MB, GB, TB e as unidades binárias IEC (KiB, MiB, GiB, TiB), combinando decimal e binário como preferir.
Gerador de Docker Compose
Gere um docker-compose.yml a partir de definições de serviços com imagem, portas e volumes, com padrões de boas práticas.
Conversor de base numérica
Converta números entre binário, octal, decimal, hexadecimal e qualquer base personalizada de 2 a 36, com o detalhamento posicional.
Visualizador de Markdown
Escreva Markdown e veja a renderização HTML atualizar ao vivo. Sintaxe com estilo GitHub, incluindo tabelas, listas de tarefas, blocos de código cercados e autolinks.
Gerador de Configuração Nginx
Gere blocos de servidor Nginx com TLS, HTTP/2, gzip, cache de navegador e regras de proxy reverso a partir de um formulário simples.
Ferramenta disponível em outros idiomas
- スキーマ推論ツール [JA]
- Narzędzie do wnioskowania schematu [PL]
- Alat Inferensi Skema [ID]
- Schemainferensverktyg [SV]
- Outil d'inférence de schéma [FR]
- Công cụ suy luận lược đồ [VI]
- Schema-inferentie-tool [NL]
- เครื่องมืออนุมาน Schema [TH]
- Schema-Inferenz-Tool [DE]
- Herramienta de Inferencia de Esquema [ES]
- أداة استنتاج المخطط [AR]
- 스키마 추론 도구 [KO]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]