Чтобы разобраться в существующей базе, не нужно рисовать её заново: достаточно выгрузить DDL-скрипт и импортировать его — диаграмма построится сама.
Как импортировать
- Выгрузите DDL из базы:
pg_dump --schema-onlyдля PostgreSQL,mysqldump --no-dataдля MySQL, «Generate Scripts» в SQL Server Management Studio. - Откройте редактор DBML и выберите Файл → Импорт из SQL… (или просто перетащите файл .sql в редактор).
- Выберите СУБД: PostgreSQL, MySQL, SQL Server или Snowflake.
- Вставьте DDL или нажмите Загрузить файл, затем Импортировать. Текущий код будет заменён результатом.

Что переносится
- Таблицы, колонки, типы, первичные ключи,
NOT NULL,UNIQUE, значения по умолчанию. - Внешние ключи — связи (
ref) на диаграмме. - Индексы, перечисления (
CREATE TYPE … AS ENUMв PostgreSQL), комментарии.
Если импорт не прошёл
Ошибка «Не удалось разобрать SQL» обычно означает, что в скрипте есть то, чего нет в DDL таблиц: функции, триггеры, процедуры, права, команды конкретного клиента (\connect, SET). Оставьте в скрипте только CREATE TABLE, ALTER TABLE … ADD CONSTRAINT, CREATE INDEX и CREATE TYPE.
После импорта
- Расставьте таблицы на диаграмме мышью — расположение сохраняется вместе с документом.
- Добавьте
TableGroupдля подсистем и заметки (Note) — диаграмма станет документацией. - Получите SQL для другой СУБД — «Генератор SQL из DBML»: так удобно переносить схему, например, с MySQL на PostgreSQL (проверьте типы — не все переводятся один к одному).
Пример
CREATE TABLE users (
id SERIAL PRIMARY KEY,
email VARCHAR(255) NOT NULL UNIQUE
);
CREATE TABLE orders (
id SERIAL PRIMARY KEY,
user_id INT NOT NULL REFERENCES users(id),
total NUMERIC(12, 2)
);
После импорта (СУБД — PostgreSQL) получится DBML с таблицами users и orders и связью orders.user_id > users.id, а на диаграмме — две таблицы со стрелкой.
Вопросы и ответы
Как импортировать схему Oracle? Импорт поддерживает PostgreSQL, MySQL, SQL Server и Snowflake. DDL Oracle часто импортируется в режиме PostgreSQL после замены специфичных типов (VARCHAR2 → varchar, NUMBER → numeric).
База огромная — диаграмма нечитаема. Разбейте модель по подсистемам с TableGroup или импортируйте только нужные таблицы.
