gendesign/tradein-mvp/backend/data/sql
bot-backend e00dcac177
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 8s
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Has been skipped
CI Trade-In / backend-tests (pull_request) Successful in 4m27s
fix(tradein/deactivate): resolve migration 264 renumber collision on merge with main
fix/tradein-ttl-effective-cap (PR #2907, merged into main while this branch was in
flight) already claimed 264/265 for deactivate_stale_avito_cap_mult /
deactivate_stale_yandex_cap_mult. Renumbers this branch's
264_seed_deactivate_stale_null_segment_yandex_cian.sql -> 266_seed_... (git mv +
_manifest_applied.txt entry moved after 264/265 + self-references in the migration
header and in test_deactivate_stale_listings.py's _MIGRATION_264 constant/test names).

Merges main's bool-guard (ttl_days/cap_mult reject bool) + CAP_MULT ceiling +
per-source cap_mult calibration with this branch's null_segment_only kwarg
(explicit `listing_segment IS NULL` predicate, since ANY(:segments) never matches
NULL) -- both features apply to the same deactivate_stale_listings() call site in
product_handlers.py and the same function signature/docstring in
deactivate_stale_avito.py, so every conflict was signature/docstring-level, not
logic-level (git already auto-merged the function body correctly since the two
features touch disjoint lines below the signature). Also reconciled the module
docstring's "known gap" note (main) to reflect that the NULL-segment slice it
measured (cian 211 / yandex 523 rows >60d) is now closed by this migration --
novostroyki stays open, unrelated to this branch.
2026-08-15 21:13:41 +03:00
..
001_trade_in_estimates.sql
002_core_tables.sql
003_seed_deals.sql
004_extend_trade_in_estimates.sql
005_geocode_tracking.sql
007_estimate_photos.sql
008_crm_fields.sql
009_houses.sql
010_houses_alter.sql
011_listings_alter.sql
012_sellers.sql
013_listings_alter_seller.sql
014_house_reviews.sql
015_scrape_runs.sql
016_listings_snapshots.sql
017_house_placement_history.sql
018_avito_imv_evaluations.sql
019_listings_alter_cian.sql
020_houses_alter_cian.sql
021_management_companies.sql
022_agents_table.sql
023_offer_price_history.sql
024_houses_price_dynamics.sql
025_house_reliability_checks.sql
026_external_valuations.sql
027_cian_session_cookies.sql
028_matching_tables.sql
029_extend_matching_valuation_dynamics.sql
030_avito_imv_cache_key_unique.sql
031_houses_alter_yandex.sql
032_yandex_history.sql
033_listings_alter_yandex.sql
034_trade_in_estimates_geom.sql
035_drop_duplicate_indexes.sql
040_houses_extend.sql
041_house_sources_noop.sql
042_listing_sources_price_divergence_idx.sql
043_house_reviews_extend.sql
044_external_valuations_link.sql
045_house_placement_history_extend.sql
046_views.sql
047_cian_history_sanitize.sql
050_search_optimization.sql
051_scrape_runs_extend.sql
052_scrape_schedules.sql
053_scraper_settings.sql
054_scraper_settings_global.sql
060_postgres_fdw_extension.sql
061_drop_legacy_cad_buildings.sql
062_clean_avito_addresses.sql
063_backfill_houses_and_link_listings.sql
064_house_imv_phase_c.sql
065_trade_in_estimates_floor_optional.sql
066_address_mismatch_audit.sql
067_v_street_sales_vs_listings.sql
068_drop_v_street_sales_vs_listings.sql
069_trade_in_estimates_dadata_fields.sql
070_houses_dadata_enrichment.sql
071_houses_cian_zhk_url.sql
072_scrape_schedules_seed_cian_rosreestr.sql
073_normalize_repair_state.sql
075_backfill_repair_state_from_description.sql
076_account_estimate_quota.sql
077_dedup_hash_plain_key_backfill.sql
078_scrape_schedules_seed_yandex_sweep.sql
079_listing_source_history.sql
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
082_scrape_schedules_seed_ratio_refresh.sql
083_trade_in_estimates_created_by.sql
084_brand_praktika_fill.sql
084_scrape_schedules_seed_n1_sweep.sql
085_quarter_price_index_fdw.sql
086_deals_address_trgm_index.sql
087_fdw_server_options.sql
088_scrape_schedules_seed_search_matview_refresh.sql
089_listings_geo_precision.sql
090_scrape_schedules_seed_deactivate_stale_avito.sql
091_scrape_schedules_seed_yandex_address_backfill.sql
092_sber_price_index.sql
093_scrape_schedules_seed_sber_index_pull.sql
094_cadastral_unify.sql
095_dead_schema.sql
096_scrape_schedules_seed_rosreestr_quarter_poll.sql
097_index_hygiene.sql
098_asking_to_sold_ratios_tiered.sql
099_brand_praktika_logo_wordmark.sql
100_enable_deactivate_stale_avito.sql
101_gendesign_reader_role.sql
102_grant_listings_gendesign_reader.sql
103_scrape_schedules_seed_newbuilding_enrich.sql
104_index_hygiene_geom_dedup.sql
105_market_schema_yandex_enrichment.sql
106_scrape_schedules_seed_yandex_newbuilding_sweep.sql
107_scrape_schedules_seed_cian_city_sweep.sql
108_clean_avito_addresses_v2.sql
108_merge_duplicate_houses.sql
109_asking_to_sold_ratio_segment_filter.sql
110_scrape_schedules_seed_geocode_missing_listings.sql
111_listings_avito_detail_fields.sql
112_scrape_schedules_seed_avito_detail_backfill.sql
113_deactivate_ghost_duplicate_listings.sql
113_yandex_detail_backfill.sql
114_disable_n1_sweep.sql
115_scrape_schedules_seed_deactivate_stale_yandex_cian.sql
116_offer_price_history_change_trigger.sql
117_listings_last_seen_deactivate_index.sql
118_enable_cian_city_sweep.sql
119_yandex_city_sweep_center_combos.sql
120_restore_partial_active_indexes.sql
121_remove_brand_praktika.sql
121_yandex_rich_fields.sql
122_enable_domclick_city_sweep.sql
123_avito_newbuilding_sweep_schedule.sql
124_cad_buildings_local.sql
124_deglue_avito_addresses.sql
125_scrape_schedules_seed_cadastral_geo_match.sql
126_scrape_schedules_seed_cian_full_load.sql
127_scrape_schedules_seed_avito_full_load.sql
128_listings_card_hash.sql
129_avito_full_load_incremental_split.sql
130_backfill_listings_house_id_fk.sql
130_ekb_geoportal_buildings.sql
131_fix_diff_percent_overflow.sql
132_scrape_schedules_seed_house_imv.sql
133_listings_uq_source_source_id.sql
134_listings_geom_geography_gist.sql
135_scrape_schedules_seed_house_dedup_merge.sql
136_backfill_listings_house_id_fk_source_identity.sql
137_listings_addr_norm_trgm.sql
138_domclick_bff_rewrite_schedule.sql
139_premium_houses.sql
140_yandex_house_type_backfill.sql
141_cian_promote_house_type.sql
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
144_gar_canon_addr_match.sql
145_building_sale_share_plausible_denom.sql
146_sale_share_45d_and_zhkh_denom.sql
147_canon_strip_geo_prefixes.sql
148_dedup_apartments_in_sale_share.sql
149_zhkh_priority_denominator.sql
150_sale_share_listing_geo_filter.sql
151_clean_bare_street_aliases.sql
152_sale_share_floors_guard.sql
153_sale_share_listings_floors_plausibility.sql
154_market_contract_views.sql
155_reader_grants_to_contract_views.sql
156_revoke_raw_from_reader.sql
157_scrape_proxies.sql
158_seed_proxy_healthcheck_schedule.sql
159_houses_fias_idx.sql
160_seed_deactivate_stale_domklik_n1.sql
161_backfill_scraped_at_active_recent.sql
162_seed_deals_freshness_monitor.sql
163_disable_deactivate_stale_domklik.sql
164_yandex_url_canonicalize_active_dups.sql
165_remove_n1_source.sql
166_purge_listings_phones.sql
167_drop_client_pii.sql
168_fdw_osm_poi_ekb.sql
169_osm_poi_ekb_local.sql
170_scrape_schedules_seed_osm_poi_ekb_refresh.sql
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 feat(tradein/domclick): production Layer B detail-backfill orchestrator (#2000) (#2436) 2026-07-04 19:49:07 +00: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
_manifest_applied.txt fix(tradein/deactivate): resolve migration 264 renumber collision on merge with main 2026-08-15 21:13:41 +03:00