← Все гайды

DBML в PlantUML: ER-диаграмма для документации

· 2 мин чтения

DBMLPlantUML

Как превратить модель DBML в ER-диаграмму PlantUML в нотации «вороньих лапок»: ключи, обязательные поля, связи с кратностью, группы и перечисления.

Документацию часто собирают в Confluence, AsciiDoc или Markdown, где диаграммы хранят как код PlantUML. Модель из DBML можно перевести в такую диаграмму одним действием.

Как преобразовать

  1. Откройте модель в редакторе DBML.
  2. Выберите Файл → Преобразовать в → PlantUML — ER-диаграмма.
  3. Сохраните результат в папку проекта или откройте в песочнице PlantUML.
ER-диаграмма PlantUML, полученная из DBML
Сущности с ключами и связи в нотации «вороньих лапок»

Что получается

  • Каждая таблица — entity: сначала первичный ключ, под чертой — остальные колонки с типами.
  • Обязательные колонки отмечены *, ключи — стереотипами <<PK>>, <<FK>>, уникальные — <<unique>>.
  • Связи — линиями с «вороньими лапками»: }o--|| (многие к одному) и подписью «поле → поле».
  • TableGroup — пакеты, перечисления — enum со связью от таблиц, где они используются.
  • Заметки таблиц — заметками под сущностями, цвет заголовка сохраняется.

Где использовать

  • В Markdown и AsciiDoc документах проекта: блок ```plantuml или [plantuml] рисуется прямо в предпросмотре (см. «Редактор Markdown»).
  • В Confluence с плагином PlantUML — вставьте код как есть.
  • В репозитории рядом с миграциями — текст легко ревьюить и сравнивать.

Пример результата

@startuml
title shop
hide circle
skinparam linetype ortho

entity "users" as users {
  * id : uuid <<PK>>
  --
  * email : varchar(255) <<unique>>
}

entity "orders" as orders {
  * id : uuid <<PK>>
  --
  user_id : uuid <<FK>>
  total : numeric
}

orders }o--|| users : user_id → id
@enduml

Вопросы и ответы

Зачем, если в редакторе DBML уже есть диаграмма? Диаграмма DBML живёт в редакторе и экспортируется картинкой. PlantUML — текст, который рисуется в Markdown, AsciiDoc и Confluence, поэтому подходит для документации, собираемой из исходников.

Можно ли наоборот — из PlantUML в DBML? Нет: ER-диаграмма PlantUML не содержит типов СУБД в стандартной форме. Модель надёжнее вести в DBML.