..
001_trade_in_estimates.sql
feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in)
2026-05-21 00:25:39 +03:00
002_core_tables.sql
feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in)
2026-05-21 00:25:39 +03:00
003_seed_deals.sql
fix(tradein): убрать TRUNCATE из seed — деплой больше не wipe-ит данные
2026-05-21 13:19:24 +03:00
004_extend_trade_in_estimates.sql
feat: add tradein-mvp subproject (Trade-In Estimator под /trade-in)
2026-05-21 00:25:39 +03:00
005_geocode_tracking.sql
feat(tradein): geocode-missing для deals ( #4 завершение)
2026-05-21 20:04:19 +03:00
007_estimate_photos.sql
feat(tradein): backend загрузки фото квартиры ( #394 )
2026-05-22 11:05:35 +05:00
008_crm_fields.sql
feat(tradein): CRM-поля в форме оценки ( #395 )
2026-05-22 11:15:15 +05:00
009_houses.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
010_houses_alter.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
011_listings_alter.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
012_sellers.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
013_listings_alter_seller.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
014_house_reviews.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
015_scrape_runs.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
016_listings_snapshots.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
017_house_placement_history.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
018_avito_imv_evaluations.sql
feat(tradein): SQL migrations 009-018 — houses + listings extension + IMV cache ( #440 )
2026-05-23 11:41:44 +00:00
019_listings_alter_cian.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
020_houses_alter_cian.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
021_management_companies.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
022_agents_table.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
023_offer_price_history.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
024_houses_price_dynamics.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
025_house_reliability_checks.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
026_external_valuations.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
027_cian_session_cookies.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
028_matching_tables.sql
feat(tradein): SQL migrations 019-028 — Cian schema + matching + cookies
2026-05-23 15:14:49 +03:00
029_extend_matching_valuation_dynamics.sql
feat(tradein): SQL migration 029 — extend matching/valuation/dynamics tables (PR #445 follow-up) ( #448 )
2026-05-23 12:35:03 +00:00
030_avito_imv_cache_key_unique.sql
fix(tradein): 030 — UNIQUE constraint on avito_imv_evaluations.cache_key (unblocks PR #452 ) ( #454 )
2026-05-23 13:04:21 +00:00
031_houses_alter_yandex.sql
fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes ( #500 )
2026-05-24 10:04:40 +00:00
032_yandex_history.sql
feat(tradein): SQL migrations 030-032 — Yandex schema (listings/houses/history) ( #453 )
2026-05-23 13:00:54 +00:00
033_listings_alter_yandex.sql
fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes ( #500 )
2026-05-24 10:04:40 +00:00
034_trade_in_estimates_geom.sql
fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes ( #500 )
2026-05-24 10:04:40 +00:00
035_drop_duplicate_indexes.sql
fix(tradein-sql): rename dup 030, add trade_in_estimates geom, drop dup indexes ( #500 )
2026-05-24 10:04:40 +00:00
040_houses_extend.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
041_house_sources_noop.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
042_listing_sources_price_divergence_idx.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
043_house_reviews_extend.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
044_external_valuations_link.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
045_house_placement_history_extend.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
046_views.sql
feat(tradein): SQL 040-046 — matching schema delta (Phase 1.1) ( #464 )
2026-05-23 13:30:22 +00:00
047_cian_history_sanitize.sql
fix(tradein/cian): sanitize valuation cache writes (047 UNIQUE + 026/044 cols) ( #523 )
2026-05-24 13:44:39 +00:00
050_search_optimization.sql
fix(tradein-sql): remove duplicate CREATE INDEX from 050 (regression from PR #500 ) ( #515 )
2026-05-24 12:16:27 +00:00
051_scrape_runs_extend.sql
feat(tradein): city sweep — auto ЕКБ pipeline ( #477 )
2026-05-23 14:38:07 +00:00
052_scrape_schedules.sql
feat(tradein): in-app scheduler — UI-managed schedule (replaces SSH crontab) ( #482 )
2026-05-23 14:54:25 +00:00
053_scraper_settings.sql
feat(tradein): scraper_settings live-config + Yandex admin trigger endpoints ( #484 )
2026-05-23 15:28:34 +00:00
054_scraper_settings_global.sql
feat(tradein): global scraper delay setting (applies across all scrapers) ( #485 )
2026-05-23 15:43:28 +00:00
060_postgres_fdw_extension.sql
feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) ( #493 )
2026-05-24 08:57:30 +00:00
061_drop_legacy_cad_buildings.sql
feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) ( #493 )
2026-05-24 08:57:30 +00:00
062_clean_avito_addresses.sql
fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1»)
2026-06-15 20:21:11 +05:00
063_backfill_houses_and_link_listings.sql
feat(tradein-sql): bootstrap houses + link 98.8% of listings (Phase A+B) ( #527 )
2026-05-24 14:17:32 +00:00
064_house_imv_phase_c.sql
feat(tradein): Phase C — Avito IMV per-house backfill (SQL + script) ( #534 )
2026-05-24 14:50:31 +00:00
065_trade_in_estimates_floor_optional.sql
feat(tradein): этаж/этажность optional + best test presets по deal count ( #558 )
2026-05-24 21:44:44 +00:00
066_address_mismatch_audit.sql
feat(tradein): Phase 1 of #582 — address mismatch audit infrastructure
2026-05-25 12:50:30 +05:00
067_v_street_sales_vs_listings.sql
feat(tradein): sales-vs-listings endpoint (PR K, foundation #564 ) ( #597 )
2026-05-27 11:55:44 +00:00
068_drop_v_street_sales_vs_listings.sql
chore(tradein): drop spurious v_street_sales_vs_listings ( #598 )
2026-05-27 12:23:18 +00:00
069_trade_in_estimates_dadata_fields.sql
feat(tradein): DaData on-demand enrichment в estimate flow (PR Q1)
2026-05-27 18:50:12 +05:00
070_houses_dadata_enrichment.sql
feat(tradein): DaData /clean/address backfill для houses (PR Q3)
2026-05-27 19:43:07 +05:00
071_houses_cian_zhk_url.sql
feat(tradein): houses.cian_zhk_url column + backfill ( #568 ) ( #627 )
2026-05-28 13:57:43 +00:00
072_scrape_schedules_seed_cian_rosreestr.sql
feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler ( #560 #563 ) ( #630 )
2026-05-28 15:31:24 +00:00
073_normalize_repair_state.sql
refactor(tradein): normalize repair_state raw→enum at ingest ( #621 ) ( #629 )
2026-05-28 15:18:11 +00:00
075_backfill_repair_state_from_description.sql
feat(tradein): infer repair_state from listing description text ( #622 ) ( #632 )
2026-05-28 15:37:34 +00:00
076_account_estimate_quota.sql
feat(tradein): аккаунт praktika + лимит 15 оценок/мес, чистка PRINZIP в UI ( #635 )
2026-05-28 22:04:58 +00:00
077_dedup_hash_plain_key_backfill.sql
fix(db/ci): 077 гардится по USER MAPPING, деплой ждёт готовности БД по TCP
2026-08-21 15:35:26 +03:00
078_scrape_schedules_seed_yandex_sweep.sql
feat(scheduler): dormant Yandex Realty city-sweep ( #561 ) ( #642 )
2026-05-29 08:50:10 +00:00
079_listing_source_history.sql
feat(tradein): per-source listing price history — schema + daily snapshot ( #570 ) ( #646 )
2026-05-29 12:18:04 +00:00
080_asking_to_sold_ratios.sql
fix(tradein): area-бакеты в asking→sold — и расчёт, и применение ( #2620 ) ( #2648 )
2026-08-05 08:11:04 +00:00
081_trade_in_estimates_expected_sold.sql
feat(tradein): estimator additive expected_sold price ( #648 S3) ( #661 )
2026-05-29 13:37:33 +00:00
082_scrape_schedules_seed_ratio_refresh.sql
feat(tradein): daily asking→sold ratio refresh ( #648 S4) ( #663 )
2026-05-29 13:49:36 +00:00
083_trade_in_estimates_created_by.sql
fix(tradein): scope GET /history to caller, close cross-pilot data leak ( #656 ) ( #670 )
2026-05-29 15:59:03 +00:00
084_brand_praktika_fill.sql
feat(tradein): white-label branded page for client «Практика» ( #657 ) ( #672 )
2026-05-29 16:09:23 +00:00
084_scrape_schedules_seed_n1_sweep.sql
feat(scrapers): wire N1.ru city sweep — pipeline + scheduler + admin endpoint ( #575 ) ( #745 )
2026-05-30 15:43:38 +00:00
085_quarter_price_index_fdw.sql
feat(db): quarter_price_index FDW foreign table + monthly refresh (Refs #762 ) ( #797 )
2026-05-30 17:16:28 +00:00
086_deals_address_trgm_index.sql
fix(tradein): data-layer tail A2+B+C — trgm index, FDW options, matview refresh (Refs #769 ) ( #804 )
2026-05-30 17:40:54 +00:00
087_fdw_server_options.sql
fix(tradein): data-layer tail A2+B+C — trgm index, FDW options, matview refresh (Refs #769 ) ( #804 )
2026-05-30 17:40:54 +00:00
088_scrape_schedules_seed_search_matview_refresh.sql
fix(tradein): data-layer tail A2+B+C — trgm index, FDW options, matview refresh (Refs #769 ) ( #804 )
2026-05-30 17:40:54 +00:00
089_listings_geo_precision.sql
feat(estimator): exclude city-centroid listings from radius analogs (Refs #769 Part E)
2026-05-30 21:22:21 +03:00
090_scrape_schedules_seed_deactivate_stale_avito.sql
feat(tradein): nightly task to deactivate stale avito listings ( #759 ) ( #862 )
2026-05-31 07:19:37 +00:00
091_scrape_schedules_seed_yandex_address_backfill.sql
feat(tradein): schedule yandex address backfill task ( #855 ) ( #866 )
2026-05-31 07:31:10 +00:00
092_sber_price_index.sql
feat(tradein): СберИндекс monthly city-level price index pull ( #887 , data-layer) ( #890 )
2026-05-31 12:44:56 +00:00
093_scrape_schedules_seed_sber_index_pull.sql
feat(tradein): СберИндекс monthly city-level price index pull ( #887 , data-layer) ( #890 )
2026-05-31 12:44:56 +00:00
094_cadastral_unify.sql
refactor(tradein): unify kadastr_num -> cadastral_number ( #732 )
2026-05-31 15:41:52 +03:00
095_dead_schema.sql
fix(tradein): 095 drop v_data_quality before dropping sale_type_text ( #731 )
2026-05-31 16:57:18 +03:00
096_scrape_schedules_seed_rosreestr_quarter_poll.sql
feat(tradein): scheduled monthly Rosreestr new-quarter poll → ingest alert ( #888 ) ( #894 )
2026-05-31 13:13:55 +00:00
097_index_hygiene.sql
perf(tradein): index hygiene — drop dup/redundant + de-partial is_active ( #730 ) ( #897 )
2026-05-31 13:29:11 +00:00
098_asking_to_sold_ratios_tiered.sql
feat(tradein): ppm²-tier segmentation of asking→sold ratio ( #928 , flag OFF) ( #934 )
2026-05-31 21:22:39 +00:00
099_brand_praktika_logo_wordmark.sql
fix(tradein): praktika wordmark logo + form button cutoff on short viewports
2026-06-01 10:15:49 +03:00
100_enable_deactivate_stale_avito.sql
fix(tradein): enable deactivate_stale_avito schedule on prod ( #1096 )
2026-06-06 19:08:22 +00:00
101_gendesign_reader_role.sql
feat(sf): cross-load ETL tradein→gendesign newbuilding_listings — вариант A ( #976 )
2026-06-12 11:18:47 +03:00
102_grant_listings_gendesign_reader.sql
feat(market): GRANT listings → gendesign_reader — unit-level доступ SF ( #1191 )
2026-06-12 12:04:41 +03:00
103_scrape_schedules_seed_newbuilding_enrich.sql
feat(tradein-scheduler): nightly newbuilding-enrichment schedule ( #973 )
2026-06-13 16:24:03 +05:00
104_index_hygiene_geom_dedup.sql
chore(tradein-db): drop duplicate listings_geom_active_idx ( #730 )
2026-06-13 11:53:13 +00:00
105_market_schema_yandex_enrichment.sql
feat(tradein): yandex_newbuilding sweep-entrypoint + market-схема enrichment, seed dormant ( #974 )
2026-06-15 18:28:58 +03:00
106_scrape_schedules_seed_yandex_newbuilding_sweep.sql
feat(tradein): yandex_newbuilding sweep-entrypoint + market-схема enrichment, seed dormant ( #974 )
2026-06-15 18:28:58 +03:00
107_scrape_schedules_seed_cian_city_sweep.sql
fix(tradein): переименовать seed-миграцию 101→103 (коллизия с gendesign_reader #976 )
2026-06-15 19:10:20 +03:00
108_clean_avito_addresses_v2.sql
fix(migrations): живые миграции для прод-фиксов #1361/#1419/#1364
2026-06-15 21:31:28 +03:00
108_merge_duplicate_houses.sql
fix(tradein): миграция 108 — typo cl.cluster_key + collision-safe репойнт (dup-vs-dup)
2026-06-16 08:46:44 +03:00
109_asking_to_sold_ratio_segment_filter.sql
fix(migrations): живые миграции для прод-фиксов #1361/#1419/#1364
2026-06-15 21:31:28 +03:00
110_scrape_schedules_seed_geocode_missing_listings.sql
fix(tradein): wire nightly geocode backfill для listings в in-app scheduler
2026-06-16 10:01:49 +03:00
111_listings_avito_detail_fields.sql
fix(tradein): review minors — ceiling_height_m numeric(5,2) + strengthen finishing test
2026-06-16 10:24:20 +03:00
112_scrape_schedules_seed_avito_detail_backfill.sql
feat(tradein): avito detail-enrichment nightly backfill ( #1551 )
2026-06-16 13:25:29 +03:00
113_deactivate_ghost_duplicate_listings.sql
fix(db): deactivate pre-#753 ghost duplicate listings (167 rows)
2026-06-16 15:40:30 +03:00
113_yandex_detail_backfill.sql
feat(tradein): yandex detail backfill — save_detail_enrichment + nightly task ( #1553 )
2026-06-16 13:58:20 +03:00
114_disable_n1_sweep.sql
chore(tradein): деактивировать N1.ru scraper — источник переехал в Cian
2026-06-16 14:50:51 +03:00
115_scrape_schedules_seed_deactivate_stale_yandex_cian.sql
feat(scrapers): segment-aware generic deactivate_stale for yandex/cian ( #1558 )
2026-06-16 16:09:19 +00:00
116_offer_price_history_change_trigger.sql
feat(tradein/db): derived price-history trigger (avito/yandex) + last_seen_at deactivate index ( #1559 )
2026-06-16 16:48:58 +00:00
117_listings_last_seen_deactivate_index.sql
feat(tradein/db): derived price-history trigger (avito/yandex) + last_seen_at deactivate index ( #1559 )
2026-06-16 16:48:58 +00:00
118_enable_cian_city_sweep.sql
feat(scrapers): enable cian_city_sweep (proxy alive, sweep is cookieless) ( #1568 )
2026-06-16 17:08:47 +00:00
119_yandex_city_sweep_center_combos.sql
feat(tradein): yandex city sweep — EKB-center rooms×price combos (replaces 5-anchor shallow) ( #1658 )
2026-06-16 19:57:37 +00:00
120_restore_partial_active_indexes.sql
fix(sql): restore partial predicate on 5 listings indexes ( #1398 )
2026-06-17 20:50:51 +03:00
121_remove_brand_praktika.sql
fix(tradein): remove «Практика» white-label brand (DB row + account mapping + assets)
2026-06-19 12:53:37 +03:00
121_yandex_rich_fields.sql
feat(yandex): map rich entity fields (predictedPrice, seller, listing_date, trend, metro)
2026-06-17 22:58:16 +03:00
122_enable_domclick_city_sweep.sql
feat(domclick): wire DomClick citywide sweep into pipeline+scheduler (seeded disabled)
2026-06-17 23:21:49 +03:00
123_avito_newbuilding_sweep_schedule.sql
feat(avito): dedicated newbuilding (novostroyka) citywide sweep
2026-06-18 09:45:54 +03:00
124_cad_buildings_local.sql
feat(cadastral): geo-nearest building matcher via local cad mirror
2026-06-18 10:18:54 +03:00
124_deglue_avito_addresses.sql
fix(avito): de-glue house number from district marker in _clean_address ( #1773 )
2026-06-19 13:33:43 +05:00
125_scrape_schedules_seed_cadastral_geo_match.sql
feat(cadastral): geo-nearest building matcher via local cad mirror
2026-06-18 10:18:54 +03:00
126_scrape_schedules_seed_cian_full_load.sql
feat(tradein): schedule cian_full_load (exhaustive secondary) + anchor sweep NB-only
2026-06-18 13:25:23 +03:00
127_scrape_schedules_seed_avito_full_load.sql
feat(tradein): avito exhaustive full-load (room×price bisection) — mirror cian
2026-06-18 13:55:18 +03:00
128_listings_card_hash.sql
feat(listings): card_hash column + snapshot-dedup on unchanged cards
2026-06-18 22:01:54 +03:00
129_avito_full_load_incremental_split.sql
feat(scheduler): per-source interval_days cadence (weekly exhaustive avito)
2026-06-18 23:10:18 +03:00
130_backfill_listings_house_id_fk.sql
fix(db): #1781 backfill listings.house_id_fk from house_sources
2026-06-19 16:20:32 +05:00
130_ekb_geoportal_buildings.sql
feat(tradein): EKB geoportal building ingest + geocoder tier (complete city buildings)
2026-06-19 17:51:07 +03:00
131_fix_diff_percent_overflow.sql
fix(tradein/db): widen offer_price_history.diff_percent numeric(5,2)→(8,2) + clamp в триггере (краш full_load)
2026-06-20 11:43:23 +03:00
132_scrape_schedules_seed_house_imv.sql
feat(scheduler): wire house_imv_backfill as scheduled source ( #854 ) ( #1910 )
2026-06-26 07:45:08 +00:00
133_listings_uq_source_source_id.sql
fix(migration-133): dedup via cascade-delete, not child re-point (prod hotfix)
2026-06-26 08:16:27 +00:00
134_listings_geom_geography_gist.sql
perf(tradein): GIST index on (geom::geography) for estimator radius filter ( #1189 ) ( #1924 )
2026-06-26 17:12:49 +00:00
135_scrape_schedules_seed_house_dedup_merge.sql
feat(tradein): recurring house-dedup merge (schedule dormant) ( #1772 ) ( #1933 )
2026-06-26 21:39:30 +00:00
136_backfill_listings_house_id_fk_source_identity.sql
fix(tradein): backfill house_id_fk via source-identity path ( #1781 )
2026-06-27 05:01:02 +05:00
137_listings_addr_norm_trgm.sql
perf(estimate): trigram expression index for same-building anchor Tier A (~94x)
2026-06-27 11:16:48 +05:00
138_domclick_bff_rewrite_schedule.sql
fix(tradein/domclick): rewrite dead scraper to BFF JSON API + honest status ( #1846 , #1968 )
2026-06-27 13:57:07 +03:00
139_premium_houses.sql
feat(tradein): premium_houses MV + premium_building flag ( #2002 )
2026-06-27 16:40:39 +00:00
140_yandex_house_type_backfill.sql
feat(tradein/yandex): normalize house_type + promote kitchen/ceiling to columns ( #2007 )
2026-06-27 17:45:11 +00:00
141_cian_promote_house_type.sql
feat(tradein/cian): promote kitchen/mortgage/apartments + normalize house_type ( #2008 )
2026-06-27 18:01:50 +00:00
142_premium_buildings_curated.sql
fix(tradein/estimator): honest repair-note + ratio_basis label; doc EKB-calibrated constants (LOW audit R2 #1-4) ( #2505 )
2026-07-12 22:11:03 +00:00
143_building_sale_share_schema.sql
feat(tradein): схема «доли квартир дома в продаже» — gar_house_flats + houses.gar_* + v_building_sale_share (143) ( #2053 )
2026-06-28 13:48:41 +00:00
144_gar_canon_addr_match.sql
feat(tradein): канонический матч ГАР↔houses (0%→41% yield) + tradein_canon_addr + --match-only ( #2063 )
2026-06-28 15:50:07 +00:00
145_building_sale_share_plausible_denom.sql
fix(tradein): guard ГАР-undercount знаменателя в v_building_sale_share (145) ( #2064 )
2026-06-28 16:05:33 +00:00
146_sale_share_45d_and_zhkh_denom.sql
feat(tradein): второй % «за 45 дней» + zhkh-знаменатель slot (146) ( #2071 )
2026-06-28 17:51:38 +00:00
147_canon_strip_geo_prefixes.sql
fix(tradein): канон срезает гео-префиксы (Россия/Екатеринбург/мкр/пр-т) + REINDEX — покрытие 38%→~70% (147) ( #2073 )
2026-06-28 17:54:26 +00:00
148_dedup_apartments_in_sale_share.sql
fix(tradein): дедуп объявлений по квартире + over_100 NULL-фикс (500 на списке) (148) ( #2075 )
2026-06-28 18:04:32 +00:00
149_zhkh_priority_denominator.sql
feat(tradein/zhkh): ЖКХ-приоритет знаменателя «квартир в доме» + loader
2026-06-28 21:55:05 +03:00
150_sale_share_listing_geo_filter.sql
fix(tradein/sale-share): гео-фильтр числителя ≤300м — отсечь mis-bucketed листинги
2026-06-28 23:24:05 +03:00
151_clean_bare_street_aliases.sql
fix(tradein/sale-share): дедуп карточки листингов + чистка голых алиасов
2026-06-29 00:22:20 +03:00
152_sale_share_floors_guard.sql
fix(tradein/sale-share): гард по этажности — отсечь near-neighbor mis-match
2026-06-29 00:31:09 +03:00
153_sale_share_listings_floors_plausibility.sql
fix(tradein): cadastre ЖКХ-fallback + COALESCE merge-key + median-floors guard
2026-06-29 01:32:48 +03:00
154_market_contract_views.sql
feat(market): contract views market.v_* over producer tables ( #2130 )
2026-07-02 14:02:59 +00:00
155_reader_grants_to_contract_views.sql
feat(market): grant gendesign_reader SELECT on contract views ( #2138 step 1/3)
2026-07-02 14:47:49 +00:00
156_revoke_raw_from_reader.sql
feat(market): revoke gendesign_reader direct SELECT on raw tables ( #2138 step 3/3)
2026-07-02 15:11:55 +00:00
157_scrape_proxies.sql
feat(proxy-pool): scrape_proxies table + admin bulk-load/list endpoints ( #2161 )
2026-07-02 16:31:21 +00:00
158_seed_proxy_healthcheck_schedule.sql
feat(proxy-pool): pool service (acquire/release/health) + healthcheck scheduler task ( #2162 )
2026-07-02 16:41:39 +00:00
159_houses_fias_idx.sql
feat(tradein/matching): fias_exact tier + estimate fias persist + suggest fias_id contract
2026-07-02 20:49:04 +03:00
160_seed_deactivate_stale_domklik_n1.sql
fix(tradein): deactivate_stale для domklik/n1 + честная freshness по scraped_at ( #2204 ) ( #2221 )
2026-07-02 20:10:34 +00:00
161_backfill_scraped_at_active_recent.sql
fix(tradein/scrapers): bump scraped_at при ре-подтверждении живым + бэкфилл ( #2206 ) ( #2224 )
2026-07-02 20:30:01 +00:00
162_seed_deals_freshness_monitor.sql
feat(tradein/monitor): алерт на staleness данных deals по max(deal_date) ( #2212 ) ( #2226 )
2026-07-02 20:50:37 +00:00
163_disable_deactivate_stale_domklik.sql
fix(tradein): оставить domklik активным — отключить его TTL-деактивацию ( #2204 )
2026-07-03 08:52:56 +03:00
164_yandex_url_canonicalize_active_dups.sql
fix(tradein/data): yandex url-дубли — дедуп-миграция + инвариант + корень ( #2235 )
2026-07-03 09:39:29 +03:00
165_remove_n1_source.sql
chore(tradein): полное выключение источника n1 — миграция 165 + вычистка backend/ops ( #2204 )
2026-07-03 10:08:56 +03:00
166_purge_listings_phones.sql
fix(tradein/pii): удалить телефоны продавцов (NULL) + PII клиента (DROP) ( #2217 , #1969 )
2026-07-03 23:00:42 +03:00
167_drop_client_pii.sql
fix(tradein/pii): удалить телефоны продавцов (NULL) + PII клиента (DROP) ( #2217 , #1969 )
2026-07-03 23:00:42 +03:00
168_fdw_osm_poi_ekb.sql
feat(tradein): location-coef MVP через FDW-мост к OSM POI Птицы ( #2045 )
2026-07-03 23:44:55 +03:00
169_osm_poi_ekb_local.sql
feat(tradein): location-coef MVP через FDW-мост к OSM POI Птицы ( #2045 )
2026-07-03 23:44:55 +03:00
170_scrape_schedules_seed_osm_poi_ekb_refresh.sql
feat(tradein): location-coef MVP через FDW-мост к OSM POI Птицы ( #2045 )
2026-07-03 23:44:55 +03:00
171_scrape_schedules_seed_geoportal_coords_backfill.sql
fix(tradein/tasks): городской гейт в ночном бэкфилле координат ( #2583 )
2026-07-31 18:38:39 +03:00
172_trade_in_leads.sql
feat(tradein/lead): POST /api/v1/trade-in/lead — persist contact leads ( #2376 ) ( #2390 )
2026-07-04 07:12:22 +00:00
173_scrape_proxies_add_domclick_affinity.sql
chore(tradein/proxy-pool): добавить domclick в provider_affinity CHECK (residential ASocks для #2000 )
2026-07-04 17:21:07 +03:00
174_domclick_session_cookies.sql
feat(tradein/domclick): cookie-injection MVP для обхода QRATOR-блока ( #2000 ) ( #2433 )
2026-07-04 17:49:40 +00:00
175_scrape_schedules_seed_domclick_detail_backfill.sql
docs(tradein/domclick): два комментария описывали пул, которого нет с миграции 253
2026-08-29 18:58:51 +03:00
176_domrf_kapremont.sql
feat(tradein): fill houses.year_built/material_walls from ДОМ.РФ КР1.1/1.2 + zhkh_year, propagate to listings ( #2013 ) ( #2476 )
2026-07-12 13:12:07 +00:00
177_deals_city_region.sql
fix(tradein/ingest): раз-хардкод rosreestr DKP импорта на всю обл. 66
2026-07-12 18:11:47 +03:00
178_deal_city_price_bands.sql
fix(tradein/estimator): per-city ценовой band ДКП-сделок для всей обл. 66
2026-07-12 19:07:05 +03:00
179_scrape_schedules_seed_oblast_city_sweeps.sql
feat(tradein/scraper): per-city sweep capability для 5 городов области (schedules disabled)
2026-07-12 20:06:46 +03:00
180_seed_sber_freshness_monitor.sql
feat(tradein): монитор свежести СберИндекса (audit п.1)
2026-07-12 23:27:35 +03:00
181_clamp_bad_listing_dates.sql
fix(tradein/scrapers): clamp implausible listing/publish dates (LOW audit R2 #6 ) ( #2507 )
2026-07-12 22:11:06 +00:00
182_trade_in_leads_consent_proof.sql
feat(tradein/lead): persist 152-ФЗ proof-of-consent (LOW audit R2 #9 ) ( #2511 )
2026-07-12 22:13:36 +00:00
183_reenable_deactivate_stale_domklik.sql
fix(tradein/scheduler): re-enable deactivate_stale_domklik now that domclick sweeps run (LOW audit R2 #10 ) ( #2510 )
2026-07-12 22:12:12 +00:00
184_user_events.sql
feat(tradein/db): user_events table — unified login/IP audit + behavior event log ( #2515 )
2026-07-13 19:47:26 +00:00
185_account_quota_overrides.sql
fix(tradein/quota): per-user quota override + no-burn on empty estimate ( #2517 )
2026-07-13 20:18:42 +00:00
186_tg_support.sql
feat(tradein/tgbot): Telegram support-мост @MERAsupport_bot
2026-07-16 16:58:53 +03:00
187_web_support_chat.sql
feat(tradein/support): веб-чат поддержки — серверная часть поверх Telegram-моста ( #2532 )
2026-07-26 20:43:47 +00:00
188_tg_support_chat_id_scope.sql
feat(tradein/support): веб-чат поддержки — серверная часть поверх Telegram-моста ( #2532 )
2026-07-26 20:43:47 +00:00
189_account_estimate_usage_nonnegative.sql
fix(tradein): откат транзакции в backfill + неотрицательный счётчик квот ( #2538 )
2026-07-26 22:21:08 +00:00
190_sale_share_price_bucket_signature.sql
fix(tradein/sql): цена в подписи дедупликации «доли квартир дома в продаже» ( #2539 )
2026-07-26 22:50:39 +00:00
191_account_quota_unlimited_flag.sql
feat(tradein/auth): восстановить доступ praktika + безлимит через данные вместо хардкода ( #2544 )
2026-07-26 23:29:53 +00:00
192_tradein_users_auth.sql
feat(tradein/db): tradein_users + tradein_sessions schema ( #2551 )
2026-07-30 09:40:05 +03:00
193_tradein_users_seed.sql
fix(tradein/db): не затирать manager_id при повторном прогоне сида ( #2557 )
2026-07-30 22:08:14 +03:00
194_deal_city_price_bands_tiers.sql
feat(tradein/db): авто-refresh ценовых бэндов по городам + порог для малых городов ( #2576 )
2026-07-31 16:33:20 +03:00
195_scrape_schedules_seed_deal_city_price_bands_refresh.sql
feat(tradein/db): авто-refresh ценовых бэндов по городам + порог для малых городов ( #2576 )
2026-07-31 16:33:20 +03:00
196_listings_city.sql
fix(tradein/scraper): проставлять город объявления из контекста развёртки ( #2594 )
2026-07-31 22:14:47 +03:00
197_backfill_listings_city_from_url.sql
fix(tradein/geocode): бэкфилл listings.city из слага города в URL Авито ( #2594 )
2026-08-01 01:46:03 +03:00
198_scrape_proxy_rotations.sql
feat(tradein/proxy): ротация exit-IP ASocks по бану со счётчиком и громким отказом ( #2600 )
2026-08-01 21:41:12 +03:00
199_scrape_proxies_asocks_rotate_url.sql
feat(tradein/proxy): ротация exit-IP ASocks по бану со счётчиком и громким отказом ( #2600 )
2026-08-01 21:41:12 +03:00
200_region_code_foreign_cities.sql
fix(tradein/data): убрать ложный region_code=66 у объявлений чужих городов ( #2604 )
2026-08-01 21:52:00 +03:00
201_purge_dead_mobileproxy_proxies.sql
chore(tradein/proxy): выпилить мёртвые узлы mobileproxy и их ключи из пула ( #2613 ) ( #2614 )
2026-08-01 20:05:06 +00:00
202_listing_source_snapshot_budget_sec.sql
fix(tradein/snapshot): починить зависающий запрос снапшотов и добавить бюджет времени ( #2607 )
2026-08-02 11:55:43 +03:00
203_purge_geocode_cache_house_letter.sql
fix(tradein/geocoder): строгий матч литеры дома + починка DaData region-фильтра ( #2622 )
2026-08-02 12:06:44 +00:00
204_cian_oblast_sweeps_secondary.sql
fix(tradein/scraper): исключить Верхнюю Пышму из вторички Циана — грязная городская метка
2026-08-02 14:07:56 +03:00
205_sales_vs_listings_city_filter.sql
fix(tradein/ui): городской фильтр в витрине «сделки против объявлений» ( #2583 H4) ( #2627 )
2026-08-02 11:54:33 +00:00
206_scrape_schedules_cut_wasteful_load.sql
chore(tradein/scraper): срезать бесполезную нагрузку — темп cian_full_load и джобы с нулевым выходом
2026-08-02 16:51:08 +03:00
207_backfill_yandex_cian_city_geo_cleanup.sql
fix(tradein): бэкфилл-чистка неверных oblast-меток city для yandex/cian ( #2628 ) ( #2646 )
2026-08-05 07:13:28 +00:00
208_reenable_domclick_detail_backfill.sql
chore(tradein): вернуть domclick_detail_backfill после починки детекта ( #2636 ) ( #2647 )
2026-08-05 07:25:24 +00:00
209_scrape_proxies_disabled_reason.sql
fix(tradein/proxy): отличать ручное выключение узла от авто-выключения ( #2610 ) ( #2652 )
2026-08-05 10:18:02 +00:00
210_scrape_proxy_source_bans.sql
fix(tradein/proxy): backup-узел должен быть пригоден + рычаг снятия бана ( #2600 п.2)
2026-08-05 17:45:07 +05:00
211_sales_vs_listings_segment_guard.sql
fix(tradein): сегментный гард в «медианном торге», свежесть в индексе локации, честные админ-счётчики ( #2660 )
2026-08-05 22:39:48 +05:00
212_sber_index_pull_weekly.sql
fix(tradein): чинит такт загрузки СберИндекса — иначе новый ERROR стал бы ложной тревогой ( #2674 )
2026-08-06 02:53:26 +05:00
213_listings_snapshots_status_vocab.sql
chore(tradein): перенумеровать миграцию 212 -> 213 (коллизия с #2681 )
2026-08-06 03:07:09 +05:00
214_drop_dead_run_metrics.sql
fix(tradein/admin): гейт отмены по источнику, честный комментарий view, лимит 50 ( #2674 )
2026-08-06 03:57:46 +05:00
215_avito_full_load_window_matches_cadence.sql
fix(tradein/avito): верное объяснение границы окна и критерий приёмки по глубине ( #2674 )
2026-08-06 04:09:05 +05:00
216_dead_code_sweep.sql
fix(tradein): панорама для страниц без истории, точные счётчики, окно без гонки ( #2674 )
2026-08-06 05:32:14 +05:00
217_position_in_serp_unexpressible.sql
fix(tradein): такт в сохранении расписания, position_in_serp невыразим ( #2674 )
2026-08-06 05:49:48 +00:00
218_scrape_runs_ban_kind.sql
fix(tradein/scraper): статус «забанен» перестаёт выдавать наш сбой за чужой ( #2686 ) ( #2711 )
2026-08-06 08:18:26 +00:00
219_deactivate_stale_health_gate.sql
fix(tradein): TTL-деактивация не исполняется, пока сбор по источнику лежит ( #2659 ) ( #2710 )
2026-08-06 08:40:41 +00:00
220_listings_sale_type_domclick_dialect.sql
fix(tradein/domclick): sale_type перестаёт быть третьим словарём ( #2674 ) ( #2696 )
2026-08-06 06:11:45 +00:00
221_backfill_house_suggestions_image_link.sql
fix(tradein): вернуть фотографии подсказок Avito IMV задним числом ( #2674 ) ( #2693 )
2026-08-06 05:40:02 +00:00
222_db_audit_cleanup.sql
chore(tradein/db): уборка временных таблиц, дублей индексов и звёздочки в v_data_quality ( #2746 )
2026-08-06 18:27:39 +00:00
223_scrape_runs_time_columns_meaning.sql
fix(tradein/scraper): отметки времени прогона перестают замерзать в его же транзакции ( #2702 ) ( #2718 )
2026-08-06 09:55:50 +00:00
224_houses_house_type_canon.sql
fix(tradein/houses): camelCase-типы домов приводятся к канону у источника ( #2678 ) ( #2719 )
2026-08-06 09:55:54 +00:00
225_listing_source_snapshots_run_id_idx.sql
chore(tradein/db): уборка временных таблиц, дублей индексов и звёздочки в v_data_quality ( #2746 )
2026-08-06 18:27:39 +00:00
227_drop_position_in_serp.sql
chore(tradein/db): DROP listings_snapshots.position_in_serp — шаг 2 из 2 ( #2697 ) ( #2728 )
2026-08-06 11:41:39 +00:00
228_scrape_proxies_browser_health.sql
fix(tradein/proxy): проба узла ходит браузерным трактом, вердикт живёт отдельно от HTTP-пробы ( #2723 ) ( #2736 )
2026-08-06 12:50:24 +00:00
229_trade_in_estimates_consent_proof.sql
chore(tradein/privacy): перенумерация 231 и merge main - коллизия префикса ( #2547 )
2026-08-06 19:10:27 +03:00
230_house_merge_log.sql
feat(tradein/houses): журнал слияний домов — слияние стало обратимым ( #2740 )
2026-08-06 15:41:20 +00:00
231_trade_in_privacy_retention.sql
fix(tradein/privacy): не удалять B2B-строки в purge + находить телефон в другом формате при erasure ( #2547 )
2026-08-06 19:49:13 +03:00
232_listings_observation_time_meaning.sql
fix(tradein/scrapers): метка наблюдения — время строки, а не старта транзакции ( #2731 ) ( #2742 )
2026-08-06 16:19:56 +00:00
233_payments.sql
feat(tradein/payments): схема БД, конфиг и kill-switch платёжного контура ( #2732 )
2026-08-06 16:33:27 +00:00
234_scrape_runs_ban_kind_unknown.sql
fix(tradein/scraper): диагноз бана перестаёт назначаться по умолчанию ( #2764 ) ( #2765 )
2026-08-06 23:17:59 +00:00
238_listings_ceiling_height_unify.sql
fix(tradein): свести высоту потолков к одной колонке ceiling_height_m ( #2779 )
2026-08-07 09:18:48 +00:00
239_scrape_schedules_seed_house_coords_from_listings.sql
fix(tradein/houses): вернуть координаты объявлений в дом, когда объявления согласны ( #2771 ) ( #2780 )
2026-08-07 09:08:06 +00:00
240_trade_in_estimates_retain_until.sql
fix(tradein/payments): SET LOCAL lock_timeout в миграции 240 (gate threshold — артефакт)
2026-08-07 15:59:28 +03:00
250_drop_duplicate_expires_at_index.sql
chore(tradein/db): вернуть снос дубля индекса expires_at — теперь с lock_timeout ( #2795 )
2026-08-09 17:10:18 +00:00
251_listings_drop_ceiling_height.sql
chore(tradein/db): снести DEPRECATED-колонку listings.ceiling_height ( #2799 )
2026-08-09 17:51:15 +00:00
253_scrape_proxy_domclick_affinity_release.sql
fix(tradein/proxy): узел, зарезервированный за Домкликом, до Домклика не доходит ( #2800 A) ( #2802 )
2026-08-09 18:15:55 +00:00
254_listings_backfill_avito_rating_glued_address.sql
fix(tradein/db): разовая чистка 1123 адресов Авито с приклеенным рейтингом ( #2814 ) ( #2818 )
2026-08-10 10:22:33 +00:00
255_trade_in_estimates_revival_relaxations.sql
fix(tradein/estimate): оживлять мёртвые сохранённые оценки при открытии ( #2826 )
2026-08-11 04:15:40 +00:00
256_trade_in_estimates_revival_completed_at.sql
fix(tradein/estimate): не перетирать дату обращения при оживлении оценки ( #2828 )
2026-08-11 05:52:05 +00:00
257_listings_backfill_yandex_source_url.sql
fix(tradein/yandex): 3535 source_url ведут на сайт застройщика — переписываем из offerId ( #2840 )
2026-08-12 15:33:31 +00:00
258_houses_imv_transient_attempts.sql
fix(tradein/imv): «временная» ошибка снова временная — 1390 домов возвращаются в очередь ( #2843 )
2026-08-12 16:06:24 +00:00
259_data_quality_drop_pct_cadastr.sql
fix(tradein/quality): витрина перестаёт рапортовать «доля с кадастром» ( #2674 ) ( #2850 )
2026-08-12 20:37:16 +00:00
260_houses_drop_has_panorama.sql
docs(tradein): снять устаревшее обоснование обрыва прогона Домклика ( #2854 ) ( #2859 )
2026-08-13 07:33:59 +00:00
261_listings_search_mv_drop_placeholder_columns.sql
chore(tradein/db): убрать три колонки-заглушки витрины поиска ( #2857 ) ( #2858 )
2026-08-13 07:25:43 +00:00
262_scrape_schedules_seed_oblast_city_sweeps_wave2.sql
feat(tradein): вся Свердловская область — 40 городов в city-sweep ( #2879 )
2026-08-13 19:08:44 +00:00
263_scrape_schedules_wave2_cian_newbuilding_only_false.sql
fix(tradein/cian): вернуть сбор вторички — sweep выбрасывал всё найденное ( #2880 )
2026-08-15 13:44:22 +00:00
264_deactivate_stale_avito_cap_mult.sql
docs(tradein/deactivate): убрать неверное число из обоснования потолка
2026-08-15 21:00:42 +03:00
265_deactivate_stale_yandex_cap_mult.sql
fix(tradein/deactivate): bool guard hole + unpinned test + yandex cap_mult gap (TTL-CAP round 3)
2026-08-15 20:42:00 +03:00
266_seed_deactivate_stale_null_segment_yandex_cian.sql
fix(tradein/deactivate): resolve migration 264 renumber collision on merge with main
2026-08-15 21:13:41 +03:00
267_trade_in_estimates_market_percentile.sql
feat(tradein): позиция квартиры внутри когорты аналогов — перцентиль ( #2899 ) ( #2926 )
2026-08-19 10:08:18 +00:00
268_listings_tsv_drop_generated.sql
fix(tradein/search): снять STORED-generated с listings.tsv, не пересчитывать на каждом UPDATE
2026-08-20 22:49:15 +03:00
269_houses_yandex_jk_resolve_tried_at.sql
fix(db): миграция 269 — SET LOCAL lock_timeout внутри BEGIN/COMMIT ( #2752 )
2026-08-21 14:46:17 +05:00
270_houses_geog_gist_idx.sql
feat(db): GiST по (geom::geography) на houses — матчинг идёт по индексу ( #2997 ) ( #3020 )
2026-08-21 10:24:35 +00:00
271_listings_pro_seller_from_agency.sql
feat(tradein/yandex): is_pro_seller выводится из агентского блока + бэкфилл 4469 строк ( #3063 п.2)
2026-08-26 12:48:18 +05:00
272_houses_region_code.sql
feat(tradein/matching): region_code у houses — вывод, а не выдумка ( #3051 п.4)
2026-08-27 13:51:48 +05:00
273_drop_listings_geom_idx.sql
feat(tradein/db): дроп дублирующего listings_geom_idx — geography-двойник несёт всю работу ( #2997 )
2026-08-27 15:41:27 +05:00
274_yandex_session_cookies.sql
docs(tradein/scrapers): в репозитории лежало опровергнутое обоснование хранилища сессий Яндекса
2026-08-28 22:52:47 +03:00
275_landing_stats.sql
feat(mera/b2c): витринные метрики лэндинга считаются по проду
2026-08-29 18:45:26 +05:00
276_landing_showcase_deals.sql
fix(tradein): миграции витрины без lock_timeout — CI-гейт #2752 краснел
2026-08-29 19:20:04 +05:00
277_landing_showcase_runs.sql
fix(tradein): миграции витрины без lock_timeout — CI-гейт #2752 краснел
2026-08-29 19:20:04 +05:00
278_trade_in_estimates_public_token.sql
fix(tradein): миграция публичного токена без lock_timeout — гейт #2752
2026-08-29 19:28:37 +05:00
279_payments_live_checkout_uidx.sql
fix(tradein): миграция платежей 277 → 279 (столкновение номеров) + lock_timeout
2026-08-29 19:38:38 +05:00
280_landing_showcase_deals_coords.sql
fix(mera/b2c): вернуть координаты сделки, снесённые моим же коммитом про студию
2026-08-29 23:25:44 +05:00
281_street_scheme.sql
feat(mera/b2c): улица сделки доезжает до витрины готовой схемой, а не геометрией
2026-08-29 23:25:44 +05:00
282_scrape_schedules_seed_cian_detail_backfill.sql
feat(tradein/cian): у Циана не было добора карточек — только побочный эффект задачи про историю ( #3284 )
2026-08-30 15:34:36 +03:00
283_scrape_schedules_cadence_yandex_cian_detail.sql
chore(tradein/scheduler): добор карточек Яндекса и Циана шёл раз в сутки и простаивал
2026-08-31 14:17:12 +03:00
284_houses_total_units_from_raw.sql
fix(tradein/domclick): дом-поля едут в словаре ДОМ.РФ, а не сырьём Домклика
2026-09-05 23:17:50 +05:00