Схема 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 или отправьте вывод прямо в другой инструмент, чтобы продолжить работу.