From c265e1f76963646bb3a13bf1faf259f0f674f3fe Mon Sep 17 00:00:00 2001 From: lekss361 Date: Sat, 12 Sep 2026 14:18:57 +0000 Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B0=D1=81=D0=BF=D0=B8=D1=81=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82=D0=B0?= =?UTF-8?q?=20=D1=81=D0=B4=D0=B5=D0=BB=D0=BE=D0=BA=20=D0=A0=D0=BE=D1=81?= =?UTF-8?q?=D1=80=D0=B5=D0=B5=D1=81=D1=82=D1=80=D0=B0=20=D0=BF=D0=BE=20?= =?UTF-8?q?=D0=9C=D0=BE=D1=81=D0=BA=D0=BE=D0=B2=D1=81=D0=BA=D0=BE=D0=B9=20?= =?UTF-8?q?=D0=BE=D0=B1=D0=BB=D0=B0=D1=81=D1=82=D0=B8=20(#3504)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...scrape_schedules_seed_rosreestr_dkp_50.sql | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 tradein-mvp/backend/data/sql/302_scrape_schedules_seed_rosreestr_dkp_50.sql diff --git a/tradein-mvp/backend/data/sql/302_scrape_schedules_seed_rosreestr_dkp_50.sql b/tradein-mvp/backend/data/sql/302_scrape_schedules_seed_rosreestr_dkp_50.sql new file mode 100644 index 00000000..6ce6779e --- /dev/null +++ b/tradein-mvp/backend/data/sql/302_scrape_schedules_seed_rosreestr_dkp_50.sql @@ -0,0 +1,52 @@ +-- 302_scrape_schedules_seed_rosreestr_dkp_50.sql +-- Seed-строка scrape_schedules для региона 50 (Московская область) — #3051, трек МО. +-- +-- Dependencies: 289_rosreestr_fdw_msk_columns_seed77.sql (та же таблица, тот же +-- формат source/default_params). +-- Apply after: 301_web_support_message_idempotency_key.sql +-- +-- WHY: +-- Код-часть импорта уже параметризована регионом (`scheduler.py::_job_rosreestr_dkp` +-- читает `region_code` из default_params и валидирует его по `app.services.regions`), +-- а wildcard-хендлер `rosreestr_dkp_import_*` резолвит любое имя с суффиксом кода. +-- Регион 50 заведён в реестре и уже на проде, поэтому включение области стоит ровно +-- одной строки расписания — новой логики не требуется. +-- +-- У региона 50 `canonical_city IS NULL`, то есть он идёт по ветке региона 66: +-- `deals.city` берётся из источника (муниципалитет — Балашиха, Химки, Подольск), +-- `raw_payload` не заполняется, строки с пустым city отбрасываются. Для области это +-- и есть верное поведение: единого города у региона нет, подставлять нечего. +-- +-- Замер по FDW (2026-09-12, прод): под полным WHERE импорта регион 50 даёт +-- 113 351 сделку ДКП с 2024-01-01 — корпус того же порядка, что московский. +-- +-- Строка ВЫКЛЮЧЕНА (enabled=false) — ровно как seed 77 в миграции 289: миграция +-- заводит расписание, включение и первый прогон остаются отдельным решением +-- main-сессии. Окно 4-6 UTC совпадает с окнами регионов 66 и 77; прогоны +-- сериализуются планировщиком, а первая полная заливка 77 заняла 3 минуты на +-- 212 937 строк, так что третий регион в то же окно помещается с запасом. +-- +-- ИДЕМПОТЕНТНОСТЬ: ON CONFLICT (source) DO NOTHING — повторный прогон no-op и, +-- что важнее, НЕ сбрасывает enabled обратно в false после ручного включения. + +BEGIN; + +SET LOCAL lock_timeout = '5s'; + +INSERT INTO scrape_schedules ( + source, + enabled, + window_start_hour, + window_end_hour, + default_params +) +VALUES ( + 'rosreestr_dkp_import_50', + false, + 4, + 6, + '{"region_code": 50, "since": "2024-01-01", "batch_size": 2000}'::jsonb +) +ON CONFLICT (source) DO NOTHING; + +COMMIT;