SchemaSpy — это инструмент на языке Java для анализа структуры реляционных баз данных и генерации документации в виде статических HTML-страниц и диаграмм связей сущностей (ER-диаграмм). Программа извлекает метаданные из драйверов JDBC, обрабатывает сведения о таблицах, столбцах, индексах и внешних ключах, а затем формирует человеко-читаемую документацию, удобную для обзора архитектуры данных и навигации по объектам базы данных.
Проект ориентирован на автоматическое создание локальной документации для разработчиков, аналитиков и администраторов баз данных. SchemaSpy обычно запускается как автономное приложение в среде Java или интегрируется в процессы сборки и развёртывания. В результате работы формируется набор взаимосвязанных HTML-страниц, содержащих описание таблиц, их столбцов, связей и статистики, а также визуальные диаграммы, иллюстрирующие зависимости между сущностями.
- Подключение через JDBC: поддержка различных СУБД при наличии соответствующего JDBC-драйвера для извлечения метаданных схемы.
- Генерация HTML-документации: создание статического набора страниц с описанием схемы, таблиц, столбцов, ограничений и индексов.
- ER-диаграммы: визуализация связей между таблицами на основе внешних ключей для быстрого понимания структуры данных.
- Навигация по объектам: перекрёстные ссылки между страницами таблиц, колонок и диаграмм для удобного изучения.
- Конфигурация и фильтрация: возможность выбирать схемы, исключать объекты и настраивать формат вывода через параметры командной строки или конфигурационные файлы.
- Интеграция в CI/CD: использование в скриптах сборки для автоматического обновления документации при изменениях в модели данных.
- Масштабируемость: способно обрабатывать большие схемы с множеством таблиц, предоставляя агрегированные представления и локальные подсхемы.
- Режимы вывода диаграмм: поддержка экспорта графов в различные форматы в рамках генерируемой документации (посредством внешних графических движков при наличии).
- Локальная автономность: генерируемая документация является статической и может быть размещена на внутреннем сервере или в файловой системе без необходимости в дополнительном программном обеспечении.
- Дополнительные метаданные: включение комментариев и описаний объектов, если они присутствуют в исходной базе данных, для более полного представления модели данных.