fix(db): миграция 269 — SET LOCAL lock_timeout перед ALTER TABLE houses (#2752)
Some checks failed
CI Trade-In / changes (pull_request) Successful in 10s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / changes (pull_request) Failing after 10s
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m27s

Гейт CI «блокирующий DDL без lock_timeout» покраснел по делу: ALTER TABLE
берёт ACCESS EXCLUSIVE на houses и при живом писателе ждал бы бесконечно,
копя очередь. 5с — миграция падает честно и деплой перезапускается.
Предыдущий пустой коммит «перезапуск — флуктуация раннера» был ошибкой
диагноза: я не дочитал лог changes до ::error и приписал падение
checkout'у. Единственный источник истины — строка ::error в логе самого
changes; «Job 'changes' failed» у зависимых джобов и «'runs-on' key not
defined» в act_runner v6.3.1 — шум.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
bot-backend 2026-08-21 14:45:29 +05:00
parent ebb26b9382
commit 8de9831e25

View file

@ -8,6 +8,10 @@
-- очереди (ORDER BY tried_at NULLS FIRST), а не в начало.
--
-- Идемпотентно. Колонка nullable, без дефолта — существующие строки = «не пробовали».
-- lock_timeout (#2752): ALTER TABLE берёт ACCESS EXCLUSIVE на houses — при живом
-- писателе (свип) ждал бы его бесконечно и копил очередь за собой; 5с — и миграция
-- падает честно, деплой перезапускается, а не вешает базу.
SET LOCAL lock_timeout = '5s';
ALTER TABLE houses ADD COLUMN IF NOT EXISTS yandex_jk_resolve_tried_at timestamptz;
COMMENT ON COLUMN houses.yandex_jk_resolve_tried_at IS
'#2924: когда yandex_newbuilding_sweep последний раз пытался разрезолвить yandex_jk_slug и не смог; NULL = не пробовали или резолв удался';