Мы смотрели в сторону sqlfluff и похожих инструментов, но они не подошли по ряду причин. Например, в sqlfluff есть плагины для правил, но нет плагинов для формата файлов (а нам нужно было загружать миграции из .sql и .py файлов) и формата отчёта.
Своё решение с pglast в этом плане оказалось проще и позволило реализовать другие полезные фичи, например baseline.
Как вы решаете проблему некорректных миграций при внедрении в уже существующие проекты?
Для этого мы используем baseline: при первом запуске линтера с опцией --baseline все текущие ошибки будут сохранены в файл, и последующие запуски будут сообщать только о новых ошибках. Либо добавляем такие ошибки в секцию ignore/per-file-ignores в конфигурации.
Мы смотрели в сторону sqlfluff и похожих инструментов, но они не подошли по ряду причин. Например, в sqlfluff есть плагины для правил, но нет плагинов для формата файлов (а нам нужно было загружать миграции из .sql и .py файлов) и формата отчёта.
Своё решение с pglast в этом плане оказалось проще и позволило реализовать другие полезные фичи, например baseline.
Для этого мы используем baseline: при первом запуске линтера с опцией
--baselineвсе текущие ошибки будут сохранены в файл, и последующие запуски будут сообщать только о новых ошибках. Либо добавляем такие ошибки в секциюignore/per-file-ignoresв конфигурации.Спасибо!