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
Referência da Tabela ASCII
Tabela ASCII completa de 0 a 127 com valores decimais, hexadecimais, octais e binários e notação de referência numérica HTML, incluindo NUL, LF e DEL.
Referência de Caracteres HTML
Lista pesquisável de entidades HTML, seus códigos nomeados e numéricos, e uma cópia com um clique para caracteres e símbolos especiais.
Referência de atalhos de teclado
Pesquise atalhos padrão documentados do VS Code, Chrome e Bash com GNU Readline no macOS, Windows e Linux.
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 EditorConfig
Monte um .editorconfig com as suas regras de indentação, fim de linha e charset e acrescente a seção correta para cada linguagem do seu repositório: Python, Go, YAML, Makefile e mais.
Validador de Email
Valide um endereço de email: verificação de sintaxe RFC 5322, consulta de registro MX em tempo real, além de detalhes de parte local, domínio e comprimento. Nenhum email é enviado.
Ferramenta disponível em outros idiomas
- Schemainferensverktyg [SV]
- 스키마 추론 도구 [KO]
- Outil d'inférence de schéma [FR]
- เครื่องมืออนุมาน Schema [TH]
- Schema-inferentie-tool [NL]
- Công cụ suy luận lược đồ [VI]
- Schema-Inferenz-Tool [DE]
- Herramienta de Inferencia de Esquema [ES]
- Alat Inferensi Skema [ID]
- أداة استنتاج المخطط [AR]
- スキーマ推論ツール [JA]
- Narzędzie do wnioskowania schematu [PL]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Инструмент вывода схемы [RU]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]