Database Linting and Analysis for PostgreSQL
PGLinter — это инструмент для анализа качества базы данных PostgreSQL, который выявляет проблемы с производительностью, безопасностью и стандартизацией. Он работает на основе настраиваемых правил, которые можно включать или отключать, и поддерживает экспорт результатов в стандартном формате SARIF для интеграции с CI/CD.
Ключевые возможности:
- Автоматическое выявление проблем: Отсутствующие индексы, неиспользуемые индексы, неправильные настройки безопасности
- Глубокая интеграция с PostgreSQL: Реализован как расширение, поэтому использует внутренние механизмы СУБД
- Гибкая настройка: Можно отключать отдельные правила, менять пороги срабатывания
- Удобство для разработчиков: Встраивается в CI/CD, есть санитизация схемы данных
Например, правило B001 выявляет таблицы без первичного ключа. T003 находит индексы, которые полностью дублируются другими индексами. C001 предупреждает, если настройки памяти небезопасны.
Пользователи могут запускать анализ через SQL: SELECT pglinter.perform_base_check(); или экспортировать результаты в SARif для интеграции с GitHub Actions, Jenkins и другими инструментами.
Проект активно развивается, с планами по добавлению правил, связанных с безопасностью, и расширением покрытия различных аспектов базы данных. Конечная цель — сделать PGLinter таким же обязательным в проекте, как ESLint для JavaScript или RuboCop для Ruby.