fix(tradein): миграции витрины без lock_timeout — CI-гейт #2752 краснел
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 13s
CI / backend-tests (pull_request) Has been skipped
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 4m54s
All checks were successful
CI Trade-In / changes (pull_request) Successful in 11s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / changes (pull_request) Successful in 13s
CI / backend-tests (pull_request) Has been skipped
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 4m54s
Обе миграции создавали индекс без транзакции и без SET LOCAL lock_timeout. Гейт scripts/check-migration-lock-timeout.py это и поймал: ::error 276_landing_showcase_deals.sql:: блокирующий DDL без lock_timeout (CREATE INDEX IF NOT EXISTS idx_landing_showcase_deals_computed_at ...) Обе обёрнуты в BEGIN + SET LOCAL lock_timeout = '5s' + COMMIT по образцу 272_houses_region_code.sql. Локально гейт зелёный: «проверено новых миграций: 31».
This commit is contained in:
parent
abe559cf8f
commit
87aa5bdf07
2 changed files with 12 additions and 0 deletions
|
|
@ -21,6 +21,10 @@
|
|||
-- части ДКП-строк пуст. Правило проекта: нет величины — пишем NULL, а не
|
||||
-- правдоподобное значение. Отбор в задаче ранжирует такие строки ниже, но не
|
||||
-- запрещает их: пустая витрина хуже витрины без района.
|
||||
BEGIN;
|
||||
-- Конвенция проекта (#2752): блокирующий DDL идёт под lock_timeout, иначе он
|
||||
-- встанет в очередь за чужой сессией и утащит за собой запросы приложения.
|
||||
SET LOCAL lock_timeout = '5s';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS landing_showcase_deals (
|
||||
id bigserial PRIMARY KEY,
|
||||
|
|
@ -42,3 +46,5 @@ CREATE TABLE IF NOT EXISTS landing_showcase_deals (
|
|||
-- остаются для сверки «что показывали неделю назад».
|
||||
CREATE INDEX IF NOT EXISTS idx_landing_showcase_deals_computed_at
|
||||
ON landing_showcase_deals (computed_at DESC);
|
||||
|
||||
COMMIT;
|
||||
|
|
|
|||
|
|
@ -20,6 +20,10 @@
|
|||
--
|
||||
-- computed_at совпадает со строками батча: задача пишет строки и этот итог
|
||||
-- ОДНОЙ транзакцией, а now() в Postgres — время начала транзакции.
|
||||
BEGIN;
|
||||
-- Конвенция проекта (#2752): блокирующий DDL идёт под lock_timeout, иначе он
|
||||
-- встанет в очередь за чужой сессией и утащит за собой запросы приложения.
|
||||
SET LOCAL lock_timeout = '5s';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS landing_showcase_runs (
|
||||
id bigserial PRIMARY KEY,
|
||||
|
|
@ -36,3 +40,5 @@ CREATE TABLE IF NOT EXISTS landing_showcase_runs (
|
|||
|
||||
CREATE INDEX IF NOT EXISTS idx_landing_showcase_runs_computed_at
|
||||
ON landing_showcase_runs (computed_at DESC);
|
||||
|
||||
COMMIT;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue