Инструмент вывода схемы
Каждая новая интеграция начинается одинаково: API возвращает объект JSON, и вам нужна модель, чтобы его хранить. Набирать 20 полей вручную утомительно и чревато ошибками. Этот инструмент разбирает пример объекта JSON, подбирает тип столбца для каждого ключа и выдаёт готовую к вставке схему в нужном вам формате: SQL CREATE TABLE, схема Mongoose или определение модели Sequelize.
Как вывести схему из JSON
-
1
Вставьте пример объекта
Введите один объект JSON или массив объектов (читается первый объект массива). Используйте полную запись со всеми заполненными полями, чтобы каждый столбец получил тип.
-
2
Выберите формат вывода
SQL CREATE TABLE (в стиле Postgres / MySQL / SQLite), Mongoose для приложений Node.js на MongoDB или Sequelize для реляционных приложений Node.js.
-
3
Задайте имя таблицы или модели
Определяет имя таблицы в выводе SQL либо имя схемы или модели в выводе Mongoose и Sequelize.
-
4
Скопируйте сгенерированную схему
Вставьте её прямо в миграцию или файл модели как отправную точку.
Как выводятся типы
Вывод типов сводится к наилучшему предположению. Инструмент читает значения одного примера объекта и подбирает тип столбца для каждого ключа по тому значению, которое видит. Он не сравнивает записи и не определяет, какие поля необязательны, поэтому дайте ему полный и представительный объект.
Соответствие типов
| Значение JSON | Тип SQL | Тип Mongoose | Тип Sequelize |
|---|---|---|---|
42 (целое число) |
INTEGER | Number | DataTypes.INTEGER |
3.14 (дробное число) |
DECIMAL(10,2) | Number | DataTypes.FLOAT |
"привет" (короткая строка) |
VARCHAR(255) | String | DataTypes.STRING |
| строка длиннее 255 символов | 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] (массив) |
JSON | Object | DataTypes.JSON |
{ "nested": ... } (объект) |
JSON | Object | DataTypes.JSON |
Что добавляет вывод SQL
SQL CREATE TABLE всегда начинается с автоинкрементного первичного ключа:
id INTEGER PRIMARY KEY AUTOINCREMENT,
Вывод Mongoose и Sequelize не добавляет поле id, потому что обе библиотеки создают его за вас.
Значения по умолчанию и ограничения, о которых стоит помнить
- Читается один объект. Если вы вставите массив, проверяется только первый элемент, поэтому именно его поля определяют всю схему.
- Отсутствующий ключ означает отсутствующий столбец. Поля, которых нет в примере объекта, просто не появляются в выводе.
- Вложенные объекты и массивы становятся одним столбцом JSON. Инструмент не разворачивает их во вложенные таблицы, подсхемы или внешние ключи.
- Никакие ограничения не генерируются. Столбцы выводятся без
NOT NULL, уникальности или индексов, поэтому все они допускают null, пока вы их не ужесточите.
Советы для более чистого результата
- Используйте полностью заполненную запись. Поле, которое в вашем примере равно
null, получит тип text/string, а это редко то, что вам нужно. - Переименуйте зарезервированные слова после генерации. Поля вроде
type,orderилиuserпридётся заключать в кавычки в SQL. - Относитесь к выводу как к каркасу. Настройте длины VARCHAR и точность DECIMAL, добавьте индексы, пометьте столбцы как
NOT NULLи выберите настоящие ключи перед выпуском.
Часто задаваемые вопросы
Вложенный объект или массив сопоставляется одному столбцу JSON (JSON в SQL и Sequelize, поле типа Object в Mongoose). Инструмент не разворачивает вложенные структуры во вложенные таблицы или подсхемы, поэтому при необходимости вы сами их уплощаете или нормализуете.
Нет. Если вы вставите массив объектов, проверяется только первый объект, и именно его ключи определяют схему. Убедитесь, что в этой первой записи есть все нужные вам поля с реальным значением в каждом.
Нет. Каждый столбец выводится только с типом, поэтому в выводе нет внешних ключей, ограничений уникальности, индексов или предложений NOT NULL. Добавьте их вручную, потому что они кодируют замысел, который инструмент не может восстановить по образцу.
Выберите SQL CREATE TABLE для миграции реляционной базы данных, Mongoose Schema для приложения Node.js на MongoDB или Sequelize Model для приложения Node.js на реляционной базе данных через ORM Sequelize.
Сопутствующие инструменты
Генератор вымышленных телефонных номеров
Создавайте до 50 вымышленных номеров из официально зарезервированных диапазонов пяти стран.
Генератор конфигурации webpack
Создайте webpack.config.js для webpack 5 под чистый JavaScript, React или Vue: TypeScript, Babel, CSS или Sass, изображения, HtmlWebpackPlugin, dev-сервер и команда npm install.
Генератор случайных букв
Генерируйте случайные буквы A-Z. Выберите количество, верхний или нижний регистр либо смешанный вариант для игр, заданий и уроков.
Проверка телефонных номеров
Проверьте структуру номера по стране и получите регион, тип, форматы E.164, международный, национальный и RFC 3966.
Валидатор XSD
Проверьте XML-документ в соответствии с схемой XSD и выявите несоответствия между элементами и их типами, указав точные номера строк.
Конвертер размера файлов
Преобразуйте значения между байтами, КБ, МБ, ГБ, ТБ и двоичными единицами IEC (KiB, MiB, GiB, TiB), свободно сочетая десятичные и двоичные единицы.
Инструмент доступен на других языках
- Công cụ suy luận lược đồ [VI]
- Alat Inferensi Skema [ID]
- Schemainferensverktyg [SV]
- 스키마 추론 도구 [KO]
- Outil d'inférence de schéma [FR]
- Schema-inferentie-tool [NL]
- Schema-Inferenz-Tool [DE]
- เครื่องมืออนุมาน Schema [TH]
- Ferramenta de Inferência de Esquema [PT]
- Herramienta de Inferencia de Esquema [ES]
- Narzędzie do wnioskowania schematu [PL]
- أداة استنتاج المخطط [AR]
- スキーマ推論ツール [JA]
- Schema Inference Tool [EN]
- Strumento di Inferenza Schema [IT]
- Şema Çıkarım Aracı [TR]
- 模式推断工具 [ZH]