# ============================================================================= # .squawk.toml — конфигурация squawk (Прил. Н #15) для Лидерры # ============================================================================= # Документация: https://squawkhq.com/docs/configuration # Инструмент: линтер миграций PostgreSQL # Применяется автоматически при запуске `squawk` без явного --config # ============================================================================= # # Стратегия проекта (Прил. Н v1.6, §10.3): # # 1. Этот конфиг тихо обрабатывает `db/schema.sql` (initial bootstrap, не миграция). # Поэтому отключены: # • правила безопасной миграции (require-timeout-settings, prefer-robust-stmts, # require-concurrent-index-creation, constraint-missing-not-valid, # adding-foreign-key-constraint) — нерелевантны для initial bootstrap # (заливается на пустую БД при `db:reset`). # • дизайнные предпочтения (prefer-identity, prefer-text-field, # prefer-bigint-over-int, prefer-bigint-over-smallint) — # в проекте сознательно используются BIGSERIAL и VARCHAR(N) с длинами # для UI-валидации; SMALLINT для денормализованных status_code. # # 2. Для будущих **Laravel-миграций** в `app/database/migrations/*.sql` # создавать локальный `.squawk.toml` рядом или запускать squawk без # `--exclude`, чтобы получить полную проверку лайв-миграции. # ============================================================================= excluded_paths = [ "db/00_create_roles.sql", # psql client-side variables (:'name') не парсятся libpg_query ] excluded_rules = [ # --- Bootstrap-неприменимые --------------------------------------------- "require-timeout-settings", # initial setup, не run-time миграция "prefer-robust-stmts", # IF NOT EXISTS не нужен на пустой БД "require-concurrent-index-creation", # нет конкурирующих подключений "constraint-missing-not-valid", # initial CREATE, не ADD CONSTRAINT "adding-foreign-key-constraint", # initial CREATE с FK inline # --- Дизайнные решения проекта ------------------------------------------ "prefer-identity", # BIGSERIAL по консистентности (см. §6.4) "prefer-text-field", # VARCHAR(N) для UI-валидации длин "prefer-bigint-over-int", # INT для счётчиков с лимитом "prefer-bigint-over-smallint", # SMALLINT для status_code (денорм.) ]