From 8df66ad7403daeaf030be8e99dbe9ee9c697c39c Mon Sep 17 00:00:00 2001 From: bot-backend Date: Fri, 7 Aug 2026 13:56:55 +0500 Subject: [PATCH] =?UTF-8?q?docs(tradein):=20=D1=83=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BE=D0=B6=D0=B8=D0=B4=D0=B0=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=D0=B5=20=D1=87=D0=B8=D1=81=D0=BB=D0=B0=20=D0=BC=D0=B8?= =?UTF-8?q?=D0=B3=D1=80.=20238=20=D0=BF=D0=BE=20=D1=81=D0=B8=D0=BC=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=D1=86=D0=B8=D0=B8=20=D0=BD=D0=B0=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D0=B4=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 877 перенесённых (855 cian − 2 мусорных + 24 yandex), итог 15 591 непустых ceiling_height_m. Прежние 879/15 703 были посчитаны в уме без вычета мусора, а критерий приёмки, записанный ДО факта, обязан быть точным. Refs #2699 --- .../data/sql/238_listings_ceiling_height_unify.sql | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tradein-mvp/backend/data/sql/238_listings_ceiling_height_unify.sql b/tradein-mvp/backend/data/sql/238_listings_ceiling_height_unify.sql index b9247c2e..32220153 100644 --- a/tradein-mvp/backend/data/sql/238_listings_ceiling_height_unify.sql +++ b/tradein-mvp/backend/data/sql/238_listings_ceiling_height_unify.sql @@ -31,7 +31,8 @@ -- 3. numeric(5,2) против numeric(3,2): у 019-колонки потолок 9.99, и запись -- out-of-range роняет ВЕСЬ батч DataError'ом (per-lot SAVEPOINT ловит только -- IntegrityError) — это уже приходилось обходить инлайн-гейтом в yandex SERP. --- 4. После переноса она — надмножество: 14 824 + 879 = 15 703 против 8 554. +-- 4. После переноса она — надмножество: 15 591 против 8 554 (посчитано +-- симуляцией на проде: 14 824 − 110 мусорных + 877 перенесённых). -- -- ── ЧТО ДЕЛАЕТ ЭТА МИГРАЦИЯ ───────────────────────────────────────────────── -- 1. Чистит невозможные значения в ОБЕИХ колонках (вне 2.0–6.0 м). @@ -62,9 +63,12 @@ UPDATE listings AND ceiling_height NOT BETWEEN 2.0 AND 6.0; -- ── 2. Перенос уникальных значений в канон ────────────────────────────────── --- Ожидаемо 879 строк: 855 cian (писал только в 019-колонку) + 24 yandex (detail --- записал, а SERP по этой карточке значения не дал). Пересечение переносить --- нечего — значения там тождественны (см. замер выше), поэтому только IS NULL. +-- Ожидаемо 877 строк: 855 cian (писал только в 019-колонку) − 2 мусорных, +-- отсеянных шагом 1, + 24 yandex (detail записал, а SERP по этой карточке +-- значения не дал). Пересечение переносить нечего — значения там тождественны +-- (см. замер выше), поэтому только IS NULL. +-- Итог после миграции (симуляция на проде 2026-08-07): ceiling_height_m = 15 591 +-- непустых, из них 0 вне диапазона 2.0–6.0. UPDATE listings SET ceiling_height_m = ceiling_height WHERE ceiling_height_m IS NULL