Генерация документации к базе данных

Связи
  • jandcode.core.dbm.jc.DbmRootProject (class)

Настройка проекта

Для работы генератора документации необходимо подключить в корневой project.jc скрипт jandcode.core.dbm.jc.DbmRootProject:

project.jc
include(jandcode.core.dbm.jc.DbmRootProject)

Генерация

Генерация документации осуществляется для конкретной модели в приложении посредством команды:

jc db-doc

Сгенерированные файлы по умолчанию копирются в каталог temp/db-doc.

При генерации по умолчанию используется модель default. Можно указать произвольную модель через опцию -m:model-name:

jc db-doc -m:my.model

В качестве модели можно использовать как экземпляр модели, так и прототип модели.

Список моделей

Список доступных моделей можно посмотреть командой:

jc app-showinfo

Шаблон генерации

Для генерации используется механим Генерация по шаблонам. Оригинальный шаблон находится в модуле jandcode-core-dbm-jc: /jc-data/dbm/db-doc/db-doc.gsp. В каталоге этого файла так же находятся вспомогательные файлы: стили, утилиты.

Посталяемый шаблон очень простой. Если Вас он не устраивает, то можно поместить его в проект и модифициовать по смоему усмотрению.

Для этого необходимо в корне проекта создать каталог jc-data/dbm/db-doc и скопировать в него содержимое оригинального каталога. Теперь вы можете модифицировать шаблон в проекте.

Кроме того, вы можете скопировать файлы шаблона произвольное место в проекте и указывать шаблон при запуске команды:

jc db-doc -s:./scripts/mydoc/db-doc.gsp

Таким образом можно иметь различное офоормление для разных задач.

Аргументы в шаблоне

В шаблон передается экземпляр класса jandcode.core.dbm.dbstruct.DomainDbUtils в аргументе dbUtils. В шаблоне его можно получить так:

DomainDbUtils dbUtils = this.args.dbUtils

Это экземпляр содержит все необходимые домены, ссылку на модель и некоторые утилиты.

Диаграммы

Диаграммы при генерации формируются посредством PlantUML. Библиотека plantuml.jar входит в поставку.

Принцип использования: генерируем все необходимые файлы диаграм в процессе генерации документации. Финальным шагом генерации - генерируем изображения из описаний. Например так:

// получаем ссылку на библиотеку plantuml
def lib = th.ctx.getLib("plantuml")
// запускаем процесс генерации в каталоге images внутри каталога, куда генерируем
ut.runcmd(cmd: ['java', '-jar', lib.jar, '-tsvg', '.'], dir: "${th.outDir}/images")