Files
portal/.squawk.toml
T

45 lines
3.0 KiB
TOML
Raw Normal View History

# =============================================================================
# .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 (денорм.)
]