gendesign/tradein-mvp/backend
bot-backend 5ce95a28a8
All checks were successful
CI Trade-In / browser-tests (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 9s
CI / frontend-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Successful in 1m1s
CI Trade-In / backend-tests (pull_request) Successful in 4m1s
fix(tradein/payments): SET LOCAL lock_timeout в миграции 240 (gate threshold — артефакт)
check-migration-lock-timeout.py требует lock_timeout только для NN >= 250 в
tradein — порог назначен по номеру аварийной миграции 250, которую затем
сняли с деплоя (#2792). Фактический максимум применённого на main — 239,
то есть весь диапазон 240-249 гейтом не проверяется вообще ("проверено
новых миграций: 0" = не проверено ни одного файла, не "все чисты"). Функция
scan() из самого гейта, прогнанная напрямую без порогового отсечения,
помечает ALTER TABLE в этом файле как блокирующий DDL без lock_timeout.

trade_in_estimates — самая горячая таблица стека (история, история
сотрудников, каждое чтение/PDF оценки); на этой БД уже наблюдались открытые
транзакции на 46 и 22 часа. Ждущая ACCESS EXCLUSIVE-блокировка встаёт в
очередь перед новыми запросами приложения. DDL на 1058 строках мгновенный —
риск не в исполнении, а в ожидании чужой блокировки.

Добавлено SET LOCAL lock_timeout = '5s' сразу после BEGIN + объяснение в
шапке файла, почему оно здесь при том что гейт формально не требует —
чтобы не убрали как "лишнее". Порог гейта не трогаю — отдельный issue.
2026-08-07 15:59:28 +03:00
..
app Merge remote-tracking branch 'forgejo/main' into feat/tradein-paid-retention 2026-08-07 15:40:52 +03:00
data/sql fix(tradein/payments): SET LOCAL lock_timeout в миграции 240 (gate threshold — артефакт) 2026-08-07 15:59:28 +03:00
scripts fix(tradein/scraper): дневной снимок узнаёт свой прогон (#2701) (#2707) 2026-08-06 07:00:17 +00:00
tests Merge remote-tracking branch 'forgejo/main' into feat/tradein-paid-retention 2026-08-07 15:40:52 +03:00
.dockerignore feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in) 2026-05-21 00:25:39 +03:00
Dockerfile chore(scraper-kit): docker-context wiring + restore backend workspace dep (#2137) 2026-07-02 14:21:38 +00:00
pyproject.toml feat(tradein/auth): password hashing + session config foundation (#2550) 2026-07-30 09:40:51 +03:00