[tradein][scrapers][critical] Rosreestr ДКП автоимпорт после деплоя — сейчас manual shell-скрипт #563

Closed
opened 2026-05-25 06:02:32 +00:00 by lekss361 · 1 comment
Owner

Сейчас

deploy/import-rosreestr.sh запускается руками на VPS:

ssh gendesign 'cd /opt/gendesign/tradein-mvp && ./deploy/import-rosreestr.sh'

Источник: gendesign-postgres-1.rosreestr_deals (6.8M строк), filter realestate_type_code=002001003000 + ДКП only + 66:41:% (EKB), since ~2024-01-01.

Текущее состояние: 49 791 ДКП после cleanup (Fix_Rosreestr_Dkp_Filter_May24, PR #549). Median 114 883 ₽/м².

Проблема redeploy

  • Если volume tradein-postgres-data потерян (миграция / disk full) → ДКП данные есть только в gendesign-postgres-1 (через FDW). Но tradein.rosreestr_deals_imported (если бы такая таблица была) — пуста.
  • Сейчас integrate напрямую через FDW view v_tradein_cad_buildings → читает gendesign-postgres-1 при каждом запросе. НО rosreestr_deals не в FDW view (там только cad_buildings).
  • Estimator сейчас NOTE 2026-05-24: rosreestr_deals temporarily NOT included in actual_deals — отключено.

Что сделать (варианты)

Вариант A — pg_cron в gendesign-postgres-1

Cron job в main DB → INSERT в tradein.rosreestr_deals_imported через dblink или FDW write.

Вариант B — Forgejo Actions schedule

В .forgejo/workflows/import-rosreestr.yml добавить on: schedule: cron: "0 4 * * *" (raily 04:00 МСК) → SSH в VPS → run import-rosreestr.sh.

Вариант C — tradein scheduler tick

Добавить scrape_schedules WHERE source='rosreestr_dkp_import', окно 04:00-06:00. В scheduler — вызвать import_rosreestr_dkp() Python функцию (миграция bash → Python с psycopg).

Рекомендация: вариант C — единая точка управления через /trade-in/admin/scrapers, runbook один.

Acceptance

  • ДКП данные обновляются раз в сутки автоматически.
  • После redeploy импорт стартует не позже 24h.
  • В estimator расскоментировать NOTE 2026-05-24 → rosreestr_deals снова в actual_deals (отдельный issue).
  • Coords backfill (geocoding) тоже автоматизирован (отдельный sub-task — сейчас координаты NULL после импорта).

Refs

  • fixes/Fix_Rosreestr_Dkp_Filter_May24 — root cause (ДДУ в выборку)
  • decisions/Decision_TradeIn_Dkp_Roadmap_May25
  • deploy/import-rosreestr.sh — текущий скрипт
## Сейчас `deploy/import-rosreestr.sh` запускается **руками** на VPS: ```bash ssh gendesign 'cd /opt/gendesign/tradein-mvp && ./deploy/import-rosreestr.sh' ``` Источник: `gendesign-postgres-1.rosreestr_deals` (6.8M строк), filter `realestate_type_code=002001003000` + ДКП only + `66:41:%` (EKB), since ~2024-01-01. Текущее состояние: 49 791 ДКП после cleanup (Fix_Rosreestr_Dkp_Filter_May24, PR #549). Median 114 883 ₽/м². ## Проблема redeploy - Если volume `tradein-postgres-data` потерян (миграция / disk full) → ДКП данные есть только в gendesign-postgres-1 (через FDW). Но `tradein.rosreestr_deals_imported` (если бы такая таблица была) — пуста. - Сейчас integrate напрямую через FDW view `v_tradein_cad_buildings` → читает gendesign-postgres-1 при каждом запросе. **НО** rosreestr_deals не в FDW view (там только `cad_buildings`). - Estimator сейчас `NOTE 2026-05-24: rosreestr_deals temporarily NOT included in actual_deals` — отключено. ## Что сделать (варианты) ### Вариант A — pg_cron в gendesign-postgres-1 Cron job в main DB → INSERT в `tradein.rosreestr_deals_imported` через `dblink` или FDW write. ### Вариант B — Forgejo Actions schedule В `.forgejo/workflows/import-rosreestr.yml` добавить `on: schedule: cron: "0 4 * * *"` (raily 04:00 МСК) → SSH в VPS → run `import-rosreestr.sh`. ### Вариант C — tradein scheduler tick Добавить `scrape_schedules WHERE source='rosreestr_dkp_import'`, окно 04:00-06:00. В scheduler — вызвать `import_rosreestr_dkp()` Python функцию (миграция bash → Python с psycopg). **Рекомендация:** вариант C — единая точка управления через `/trade-in/admin/scrapers`, runbook один. ## Acceptance - ДКП данные обновляются **раз в сутки автоматически**. - После redeploy импорт стартует не позже 24h. - В estimator расскоментировать NOTE 2026-05-24 → rosreestr_deals снова в actual_deals (отдельный issue). - Coords backfill (geocoding) тоже автоматизирован (отдельный sub-task — сейчас координаты NULL после импорта). ## Refs - `fixes/Fix_Rosreestr_Dkp_Filter_May24` — root cause (ДДУ в выборку) - `decisions/Decision_TradeIn_Dkp_Roadmap_May25` - `deploy/import-rosreestr.sh` — текущий скрипт
lekss361 added the
tradein
scrapers
automation
data
labels 2026-05-25 06:02:32 +00:00
Owner

Working on this in PR #630

Working on this in PR #630
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#563
No description provided.