Перейти к содержанию

Схема SQL в DBML

Преобразуйте инструкции CREATE TABLE в определение диаграммы DBML.

Входные данные
Выходные данные

Схема SQL в DBML

Вставьте одну или несколько инструкций CREATE TABLE, и этот инструмент вернёт эквивалент DBML — простой текстовый формат, используемый dbdiagram.io и подобными инструментами диаграмм отношений. Каждая таблица становится блоком Table, каждый столбец сохраняет своё имя и тип, первичные ключи, ограничения уникальности и внешние ключи переносятся автоматически. Инструмент создан для момента, когда у вас есть дамп схемы и нужна диаграмма быстро, без загрузки SQL на размещённый сервис.

Опция диалекта указывает парсеру, что он читает — MySQL, PostgreSQL, SQLite или SQL Server — потому что одно и то же ключевое слово может означать разные вещи в разных СУБД (MySQL TINYINT(1) читается как логическое значение, SQL Server IDENTITY столбец читается как автоинкремент). Включите сопоставление типов, чтобы свести типы конкретного диалекта к каноническому набору DBML (int, varchar, decimal, timestamp и т. д.), или оставьте выключённым, чтобы сохранить исходные имена. Комментарии — предложение MySQL COMMENT или PostgreSQL COMMENT ON — становятся записями DBML Note, когда включён параметр «Сохранять комментарии». Имена столбцов вроде user_id могут опционально предполагать связь с таблицей users даже без явного внешнего ключа, а таблицы с общим префиксом имён (shop_orders, shop_products) можно сгруппировать в TableGroup.

Инструмент понимает встроенные предложения REFERENCES, ограничения FOREIGN KEY уровня таблицы и отдельные инструкции ALTER TABLE ADD CONSTRAINT, поэтому работает с одним блоком CREATE TABLE или полным дампом с ключами, добавленными позже. Составные первичные ключи и ограничения уникальности преобразуются в блоки индексов DBML вместо того, чтобы быть отброшены.

Всё работает локально в вашем браузере — схема никогда не загружается никуда, что важно, когда SQL, который вы вставляете, описывает реальную производственную базу данных. Скопируйте DBML, загрузите его как файл .txt или отправьте вывод прямо в другой инструмент, чтобы продолжить работу.

FAQ

Какие диалекты SQL поддерживаются?
MySQL, PostgreSQL, SQLite и SQL Server. Выберите подходящий диалект, чтобы сопоставление типов и определение автоинкремента правильно прочитали SQL.
Как выявляются внешние ключи?
Из встроенных предложений REFERENCES, ограничений FOREIGN KEY уровня таблицы и отдельных инструкций ALTER TABLE ADD CONSTRAINT ... FOREIGN KEY — все три преобразуются в строки DBML Ref.
Что делает параметр «Выявлять связи по названиям столбцов»?
Когда столбец называется user_id и не существует явного внешнего ключа, инструмент проверяет наличие соответствующей таблицы users со столбцом id и добавляет для неё Ref, отмеченный как выявленный в выводе.
Могу ли я вставить вывод прямо в dbdiagram.io?
Да. Вывод представляет собой простой DBML — таблицы, столбцы, ключи и связи — в формате, который ожидают dbdiagram.io и совместимые инструменты.
Загружается ли моя схема куда-нибудь?
Нет. SQL, который вы вставляете, полностью разбирается в вашем браузере и никогда не покидает ваше устройство.