feat(tradein/rosreestr): импорт ДКП по Москве (77) — canonical_city, raw_payload, wildcard-расписание rosreestr_dkp_import_*, per-source чекпоинт (#3051) #3422
No reviewers
Labels
No labels
Fable 5 ревью
GG-форсайт
admin
analytics
auth
automation
bug
business
chore
ci
compliance
data
data-moat
docs
duplicate
dx
enhancement
feedback/max
generative
needs-discussion
needs-human
observability
pause-bots
performance
priority/p0
priority/p1
priority/p2
priority/p3
scope/backend
scope/db
scope/devops
scope/frontend
scope/qa
scrapers
security
site-finder
stage/1
stage/2
status/blocked
status/done
status/needs-analysis
status/needs-fix
status/qa
status/ready
status/review
status/wip
tech-debt
tradein
ux
week ревью 1
wontfix
ИРД
вторичка
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: lekss361/gendesign#3422
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feat/3051-rosreestr-import-region-param"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Дельта поверх #3421 (уже в main: параметры
region_code/doc_types,deals.doc_type, миграция 288). Второй PR трека «Москва» (#2989 → #3051 п.3/п.6); пара к #3423 (PR-A, регион-фильтр коридора).Что
Region.canonical_city(regions.py: 77 → «Москва», 66 →None). Вimport_rosreestr_dkpодна SQL-ветка через bind:canonical_city: для Москвыcity='Москва',address='Москва, <street>'; фильтрcity IS NOT NULLне применяется только когда заданcanonical_city(иначе теряется ~10% московских сделок с пустым city источника — там муниципальный округ/поселение, не город). Для 66 SQL по фильтрам совпадает с main.city/okato/quarter_cad_number/district→deals.raw_payload(jsonb, колонка из 029); для 66 остаётся NULL, как и раньше.region_codeвалидируется по рееструREGIONS— неизвестный код падает явно, а не импортирует мусор._dkp_source_for_region()→rosreestr_dkp_import(66, байт-в-байт прежнее) /rosreestr_dkp_import_77;_resume_dkp_cursor(source=…)— курсоры регионов не пересекаются.rosreestr_dkp_import_*вproduct_handlers.py(по образцуavito_city_sweep_*).ALTER FOREIGN TABLE gendesign_rosreestr_deals ADD COLUMN IF NOT EXISTS okato/quarter_cad_number/district(существуют в источнике — проверено на проде) + выключенный seedscrape_schedulesrosreestr_dkp_import_77({"region_code": 77}), идемпотентно,SET LOCAL lock_timeout.deploy/import-rosreestr.sh: валидацияREGION_CODE(целое) иDOC_TYPE(без'/;) — оба интерполируются в SQL текстом; шапка честно говорит, что bash-путь не делает canonical_city-подстановку для 77.Чего НЕ делает
Не включает импорт по 77 (seed
enabled=false). Порядок: merge #3423 (PR-A) → merge этого → применить 289 на проде → ручной первый прогон по 77 с проверкой выборки → включить расписание. Тесты трека — после живого прогона (правило от 08.09).Ревью
code-reviewer ✅ APPROVE (исходная ветка), database-expert OK по миграции; после merge main:
ruffчисто,pytestdedup/parity/poll — 57 passed.Refs #3051, #2989. Дизайн ключей: vault
decisions/Decision_Moscow_Regional_Keys_Sep08.md.🤖 Generated with Claude Code
feat(tradein/rosreestr): импорт ДКП по региону (77 — Москва), deals.doc_type, wildcard-расписание rosreestr_dkp_import_* (#3051)to feat(tradein/rosreestr): импорт ДКП по Москве (77) — canonical_city, raw_payload, wildcard-расписание rosreestr_dkp_import_*, per-source чекпоинт (#3051)