Оба места утверждали, что у Домклика один выделенный резидентный прокси и пула нет. Это перестало быть правдой ещё в #2800 (миграция 253 сняла резервацию узла), но текст остался — и именно на него опирался тикет #3189, поставленный под «калибровку» ограничения, которого не существует. Свип к тому же ходит через пул давно (serp.py:359), а бэкфилл подключён к нему в PR #3222. Заодно докстринг называл не тот ограничитель: свип кладёт не счётчик провалов lease, а break по первому DomClickBlockedError (#2854) — до ротации дело не доходит ни при каком счётчике, отсюда buckets_completed=0. Только комментарии, поведение не меняется. Миграция 175 уже применена, а _schema_migrations трекает по имени файла без checksum — правка текста её не перезапустит.
24 lines
930 B
PL/PgSQL
24 lines
930 B
PL/PgSQL
-- 107_backfill_price_per_m2.sql
|
|
-- Backfill price_per_m2 = ROUND(price_rub / total_area, 2) for rows where
|
|
-- price_rub is known but price_per_m2 was not stored by the scraper.
|
|
--
|
|
-- Context (SF FixList #16):
|
|
-- domrf_kn.py _norm_flat() now derives price_per_m2 on ingest.
|
|
-- This one-time UPDATE covers historical rows scraped before the fix.
|
|
-- For Малевич (obj_id=64701) and the wider dataset, both price_rub AND
|
|
-- price_per_m2 are NULL (DOM.RF /portal/table API does not return per-flat
|
|
-- pricing for most objects). Those rows are unaffected by this UPDATE.
|
|
-- Only rows where price_rub IS NOT NULL benefit — currently ~849 rows.
|
|
--
|
|
-- Safe to re-run: idempotent (WHERE price_per_m2 IS NULL).
|
|
|
|
BEGIN;
|
|
|
|
UPDATE domrf_kn_flats
|
|
SET price_per_m2 = ROUND((price_rub / total_area)::numeric, 2)
|
|
WHERE price_per_m2 IS NULL
|
|
AND price_rub IS NOT NULL
|
|
AND total_area IS NOT NULL
|
|
AND total_area > 0;
|
|
|
|
COMMIT;
|