gendesign/tradein-mvp/backend/data/sql/005_geocode_tracking.sql
TradeIn Deploy 4ea35d5740 feat(tradein): geocode-missing для deals (#4 завершение)
geocode-missing получил target=listings|deals. deals.geocode_tried_at
добавлен в миграцию 005. cron геокодит и сделки Росреестра по улицам.
2026-05-21 20:04:19 +03:00

22 lines
1.4 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- Trade-In MVP — отслеживание попыток геокодинга.
--
-- Проблема: geocode-missing раньше выбирал ВСЕ строки с lat IS NULL. Адреса,
-- которые Nominatim не может распознать (~12%), выбирались на каждом прогоне
-- → бесконечный ретрай + cron-таймаут.
--
-- Решение: колонка geocode_tried_at. После КАЖДОЙ попытки (успех или провал)
-- ставим NOW(). geocode-missing выбирает только не-пробованные ИЛИ
-- пробованные >7 дней назад. Failed-адреса ретраятся раз в неделю, не каждый cron.
--
-- Идемпотентно (ADD COLUMN IF NOT EXISTS) — безопасно при каждом деплое.
ALTER TABLE listings ADD COLUMN IF NOT EXISTS geocode_tried_at timestamptz;
ALTER TABLE deals ADD COLUMN IF NOT EXISTS geocode_tried_at timestamptz;
-- Частичные индексы: ускоряют выборку «что ещё геокодить».
CREATE INDEX IF NOT EXISTS listings_geocode_pending_idx
ON listings (geocode_tried_at NULLS FIRST)
WHERE lat IS NULL;
CREATE INDEX IF NOT EXISTS deals_geocode_pending_idx
ON deals (geocode_tried_at NULLS FIRST)
WHERE lat IS NULL;