diff --git a/tradein-mvp/backend/data/sql/183_reenable_deactivate_stale_domklik.sql b/tradein-mvp/backend/data/sql/183_reenable_deactivate_stale_domklik.sql new file mode 100644 index 00000000..42530efa --- /dev/null +++ b/tradein-mvp/backend/data/sql/183_reenable_deactivate_stale_domklik.sql @@ -0,0 +1,28 @@ +-- 183_reenable_deactivate_stale_domklik.sql +-- +-- ПРОДУКТОВОЕ РЕШЕНИЕ (user, 2026-07-13): ВКЛЮЧАЕМ обратно TTL-деактивацию +-- deactivate_stale_domklik (была отключена миграцией 163 «до возобновления +-- регулярных domclick-свипов»). +-- +-- Условие из 163 снято: свипы domclick_city_sweep + domclick_detail_backfill +-- возобновлены и стабильно бегают ежедневно (scraped_at свежий, диапазон +-- последней недели), т.е. причина отключения больше не действует. +-- +-- Безопасность re-enable (LOW audit R2 #10): +-- • Джоб ключуется на scraped_at (whitelist last_seen_at/scraped_at в +-- deactivate_stale_avito.py::_ALLOWED_STALENESS_COLUMNS), НЕ на listing_date — +-- исходная гипотеза «выпадет весь domklik по NULL listing_date» неприменима. +-- • При живых свипах scraped_at < NOW()-14d только у реально протухших строк, +-- а не у всего пула (в отличие от ситуации 163, где свипы стояли) — +-- деактивация корректна, а не тотальна. Чинит завышенный freshness domklik. +-- +-- Идемпотентно: повторный прогон — no-op (enabled уже true). Row создаётся +-- миграцией 160; если отсутствует — UPDATE затронет 0 строк (безопасно). + +BEGIN; + +UPDATE scrape_schedules + SET enabled = true + WHERE source = 'deactivate_stale_domklik'; + +COMMIT;