Вставьте SQL, получите ER-диаграмму и словарь данных
ErdDocs строит ER-диаграмму по схеме, которая у вас уже есть. Вставьте SQL-дамп, схему Prisma или миграции фреймворка. Вы получите интерактивную диаграмму и словарь данных для печати, где описаны все таблицы, колонки, типы и связи. Регистрация и установка не нужны. Схема разбирается в вашем браузере и никуда не отправляется.
Ничего не загружается на сервер. Схема остаётся в этом браузере. Последняя вставленная схема вернётся, когда вы снова откроете вкладку, и удалится, если очистить данные сайта.
Как это работает
Чтобы получить из SQL-дампа ER-диаграмму и словарь данных:
- 01Выгрузите схему. Для PostgreSQL –
pg_dump --schema-only, для MySQL –mysqldump --no-data. - 02Вставьте её выше или перетащите .sql-файл прямо на панель.
- 03Читайте диаграмму. Наведите курсор на таблицу, и её связи подсветятся. Клик закрепляет подсветку.
- 04Откройте вкладку «Словарь данных». Там собраны колонки, типы, значения по умолчанию, индексы и связи. Словарь можно распечатать в PDF.
Сделано для настоящих дампов
Рабочая схема – это не аккуратный список инструкций CREATE TABLE. Поэтому разбор проверен на настоящих схемах: pagila, sakila, GitLab, Discourse, WordPress, PrestaShop. Насколько хорошо читается каждый формат, измерено на 89 открытых схемах.
- Секционированная таблица остаётся одной таблицей. Дамп с 55 месячными партициями таблицы
paymentдаёт одну карточкуpayment, а не 56. - Недостающие внешние ключи восстанавливаются. В проектах на Rails и Django в базе их часто не объявляют вовсе. Но имена колонок всё равно говорят, что на что ссылается, и такие связи рисуются пунктиром.
- Одна плохая инструкция не губит весь файл. Всё, что не удалось прочитать, пропускается и попадает в отчёт, а остальная схема всё равно рисуется.
- Большие схемы не обрезаются. Всё вставленное разбирается и раскладывается на диаграмме, даже если в схеме сотни таблиц.
Почему ErdDocs
- Документация, а не только картинка. Словарь данных – это то, что на самом деле просят преподаватели, аудиторы, заказчики и новые коллеги.
- Без регистрации и установки. Не нужен аккаунт, чтобы увидеть результат, и не нужно ничего устанавливать в проект.
- Оплата один раз. Разовый платёж вместо подписки, которую забываешь отменить.
- Схема не покидает компьютер. Разбор идёт прямо в браузере, на сервер она не отправляется. Рабочую схему можно вставлять, не беспокоясь об утечке структуры базы данных.
Конвертация между форматами
ErdDocs читает десять форматов и экспортирует в восемь, всё это в панели выше. Каждая страница ниже посвящена одному направлению конвертации, и на ней уже загружен пример. Страницы на английском:
- ER-диаграмма по схеме Prisma: база данных, которую создаёт
schema.prisma, вместе с промежуточными таблицами. - ER-диаграмма по DBML: язык dbdiagram, а к нему словарь для печати без аккаунта.
- SQL в PlantUML: дамп в виде
.puml, без JVM и без Graphviz. - Генератор ER-диаграмм Mermaid: текст
erDiagramдля README из любого из десяти форматов. - DBML в Mermaid: результат перевода и диаграмма рядом, чтобы сразу проверить, что всё верно.
- ER-диаграмма по моделям SQLAlchemy: модели Python без pip и без Graphviz.
- ER-диаграмма по моделям Sequelize: включая ключи, которые следуют из ассоциаций.
- Схема Prisma в SQL:
CREATE TABLEбез установки CLI. - ER-диаграмма по моделям Django: таблицы, которые создаёт Django, без Graphviz.
- ER-диаграмма по TypeORM: сущности, вставленные текстом, вместе с промежуточной таблицей, которую они создают.
- Prisma в DBML: для dbdiagram и dbdocs, с диаграммой рядом с результатом.
- Prisma в PlantUML:
.pumlбез CLI и без блока generator. - Генератор ER-диаграмм для MySQL: файл mysqldump, без установки Workbench.
Частые вопросы
Что такое словарь данных?
Это справочный документ по базе данных. В нём в одном месте описаны все таблицы и колонки: тип данных, допустим ли NULL, значение по умолчанию, индексы и связи. Его просят в курсовых и дипломах, при аудите и при сдаче проекта. ErdDocs строит его по вставленной схеме, сразу в виде, готовом для печати.
Моя схема куда-нибудь загружается?
Нет. Разбор и отрисовка идут целиком в вашем браузере. SQL не покидает компьютер, и аккаунта нет вовсе. К работающей базе ErdDocs намеренно не подключается, так что доступ к ней давать не нужно. Просмотры страниц сайт считает аналитикой без cookie. Она видит, какую страницу вы открыли, и не видит ничего из того, что на ней.
Какие базы данных и форматы поддерживаются?
SQL из PostgreSQL, MySQL, SQL Server и SQLite. Это может быть вывод pg_dump с инструкциями ALTER TABLE ONLY ... ADD CONSTRAINT, mysqldump, скрипт, созданный в SSMS, с его пакетами GO и именами в квадратных скобках, или вывод команды .schema в SQLite. Ещё девять форматов читаются как есть: схемы Prisma, DBML, Mermaid erDiagram, PlantUML, модели Django, SQLAlchemy и Sequelize, сущности TypeORM и миграции Laravel. В Prisma имена из @map, поля связей и неявные промежуточные таблицы для «многие ко многим» превращаются в те таблицы, которые на самом деле появятся в базе. Формат определяется по вставленному тексту, а если он определился неверно, его можно выбрать вручную.
В базе нет внешних ключей. Диаграмма будет пустой?
Нет. В проектах на Rails, Django и Laravel связи часто описаны только в коде приложения. ErdDocs читает и соглашение об именах: колонка user_id связывается с таблицей users. Такие связи рисуются пунктиром, чтобы их не спутать с объявленными в базе.
Чем это отличается от dbdiagram, drawSQL или sqltoerdiagram?
За ErdDocs платят один раз. У dbdiagram и drawSQL платные тарифы только по подписке. ErdDocs читает Prisma, модели Django, SQLAlchemy, Sequelize и TypeORM и миграции Laravel, а они ничего из этого не читают. Выгрузки в Mermaid и PlantUML нет ни там, ни там. В drawSQL без аккаунта не выгрузить даже картинку, а DBML туда можно только загрузить. В dbdiagram связи без внешних ключей ищет ИИ, и только на платном тарифе. ErdDocs находит их по именам колонок бесплатно. У sqltoerdiagram нет словаря данных для печати. Партиции из дампа он рисует отдельными таблицами, а ErdDocs сворачивает их в родительскую. Миграции Laravel sqltoerdiagram не читает, а для Django и TypeORM просит сначала сгенерировать из моделей SQL.
Сколько это стоит?
Диаграммы и экспорт картинок бесплатны, аккаунт не нужен. Схемы до 25 таблиц показываются целиком. Большие схемы тоже разбираются полностью, но таблицы сверх лимита остаются закрытыми. Их открывает разовый платёж $9, в него входит и полный словарь данных. Налоги, где они положены, Paddle добавляет при оплате.
Можно построить ER-диаграмму онлайн по коду SQL?
Да, для этого инструмент и сделан. Вставьте CREATE TABLE из PostgreSQL, MySQL, SQL Server или SQLite. Можно вставить дамп целиком, со всеми ALTER TABLE и индексами. Также читаются Prisma, DBML, Mermaid, PlantUML, модели Django, SQLAlchemy, Sequelize, TypeORM и миграции Laravel.
Ещё
- Инструмент для ER-диаграмм: диаграмма из SQL, а не рисование вручную
- Генератор словаря данных: от схемы к документу для печати
- Обозначения ER-диаграмм: кардинальность, нотации Мартина и Чена
- Примеры ER-диаграмм: библиотека, больница и школа
- Цены: бесплатно или один платёж