diff --git a/tradein-mvp/backend/data/sql/276_landing_showcase_deals.sql b/tradein-mvp/backend/data/sql/276_landing_showcase_deals.sql index 7a363ca1..2674773b 100644 --- a/tradein-mvp/backend/data/sql/276_landing_showcase_deals.sql +++ b/tradein-mvp/backend/data/sql/276_landing_showcase_deals.sql @@ -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; diff --git a/tradein-mvp/backend/data/sql/277_landing_showcase_runs.sql b/tradein-mvp/backend/data/sql/277_landing_showcase_runs.sql index f0aa708c..f150a8e9 100644 --- a/tradein-mvp/backend/data/sql/277_landing_showcase_runs.sql +++ b/tradein-mvp/backend/data/sql/277_landing_showcase_runs.sql @@ -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;