2026-05-08 12:56:29 +03:00
|
|
|
|
# =============================================================================
|
|
|
|
|
|
# .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`, чтобы получить полную проверку лайв-миграции.
|
|
|
|
|
|
# =============================================================================
|
|
|
|
|
|
|
2026-05-08 13:48:24 +03:00
|
|
|
|
excluded_paths = [
|
|
|
|
|
|
"db/00_create_roles.sql", # psql client-side variables (:'name') не парсятся libpg_query
|
|
|
|
|
|
]
|
|
|
|
|
|
|
2026-05-08 12:56:29 +03:00
|
|
|
|
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 (денорм.)
|
|
|
|
|
|
]
|