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-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.
257 lines
10 KiB
Text
257 lines
10 KiB
Text
# _manifest_applied.txt — CONTRACT (issue #2216)
|
||
#
|
||
# Отсортированный список ВСЕХ имён миграций (bare filename) в data/sql/,
|
||
# которые на момент коммита уже применены/забейслайнены на проде.
|
||
# Прод трекает миграции по bare-filename в public._schema_migrations —
|
||
# переименование или удаление применённого файла => повторный прогон на
|
||
# проде (новый filename считается неприменённым) => дубль-эффекты/ошибки.
|
||
#
|
||
# ПРАВИЛА (enforced tests/test_migrations_manifest.py):
|
||
# 1. Каждое имя здесь ОБЯЗАНО существовать в data/sql/ (нельзя rename/rm applied).
|
||
# 2. Новый .sql-файл => НЕ переиспользуй NN-префикс (кроме 6 grandfathered дублей).
|
||
# 3. Добавляя новую миграцию — допиши её имя сюда В ТОМ ЖЕ PR (список отсортирован).
|
||
#
|
||
# Комментарии (# ...) и пустые строки тест игнорирует.
|
||
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
|
||
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
|
||
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
|
||
172_trade_in_leads.sql
|
||
173_scrape_proxies_add_domclick_affinity.sql
|
||
174_domclick_session_cookies.sql
|
||
175_scrape_schedules_seed_domclick_detail_backfill.sql
|
||
176_domrf_kapremont.sql
|
||
177_deals_city_region.sql
|
||
178_deal_city_price_bands.sql
|
||
179_scrape_schedules_seed_oblast_city_sweeps.sql
|
||
180_seed_sber_freshness_monitor.sql
|
||
181_clamp_bad_listing_dates.sql
|
||
182_trade_in_leads_consent_proof.sql
|
||
183_reenable_deactivate_stale_domklik.sql
|
||
184_user_events.sql
|
||
185_account_quota_overrides.sql
|
||
186_tg_support.sql
|
||
187_web_support_chat.sql
|
||
188_tg_support_chat_id_scope.sql
|
||
189_account_estimate_usage_nonnegative.sql
|
||
190_sale_share_price_bucket_signature.sql
|
||
191_account_quota_unlimited_flag.sql
|
||
192_tradein_users_auth.sql
|
||
193_tradein_users_seed.sql
|
||
194_deal_city_price_bands_tiers.sql
|
||
195_scrape_schedules_seed_deal_city_price_bands_refresh.sql
|
||
196_listings_city.sql
|
||
197_backfill_listings_city_from_url.sql
|
||
198_scrape_proxy_rotations.sql
|
||
199_scrape_proxies_asocks_rotate_url.sql
|
||
200_region_code_foreign_cities.sql
|
||
201_purge_dead_mobileproxy_proxies.sql
|
||
202_listing_source_snapshot_budget_sec.sql
|
||
203_purge_geocode_cache_house_letter.sql
|
||
204_cian_oblast_sweeps_secondary.sql
|
||
205_sales_vs_listings_city_filter.sql
|
||
206_scrape_schedules_cut_wasteful_load.sql
|
||
207_backfill_yandex_cian_city_geo_cleanup.sql
|
||
208_reenable_domclick_detail_backfill.sql
|
||
209_scrape_proxies_disabled_reason.sql
|
||
210_scrape_proxy_source_bans.sql
|
||
211_sales_vs_listings_segment_guard.sql
|
||
212_sber_index_pull_weekly.sql
|
||
213_listings_snapshots_status_vocab.sql
|
||
214_drop_dead_run_metrics.sql
|
||
215_avito_full_load_window_matches_cadence.sql
|
||
216_dead_code_sweep.sql
|
||
#
|
||
# 2026-08-06: список догнан до факта прода. Проверка перед правкой —
|
||
# _schema_migrations на tradein-postgres: 209 применённых имён, здесь было
|
||
# 178; расхождение — 31 имя, все в одну сторону (применено, но не заморожено).
|
||
# Обратного расхождения нет: ни одной строки, которой не было бы на проде.
|
||
#
|
||
# Тем самым снято отложенное условие из прошлой редакции: 187/188 (веб-чат
|
||
# поддержки, #2532/#2533) откладывались до подтверждения, что они осели на
|
||
# проде в финальном виде. Они в _schema_migrations — условие выполнено.
|
||
#
|
||
# 217-232 сюда намеренно не дописаны этой миграцией (222/225): в момент
|
||
# правки они уже слиты в main и применены на проде (см. _schema_migrations),
|
||
# но их авторы не дописали имена в тот же PR — это чужой пробел, не наш;
|
||
# self-maintenance-контракт (см. докстринг test_migrations_manifest.py)
|
||
# требует дописывать только СВОЙ файл в СВОЁМ PR, что и сделано ниже для
|
||
# 222/225 по прецеденту 233_payments.sql.
|
||
222_db_audit_cleanup.sql
|
||
225_listing_source_snapshots_run_id_idx.sql
|
||
233_payments.sql
|
||
234_scrape_runs_ban_kind_unknown.sql
|
||
240_trade_in_estimates_retain_until.sql
|
||
250_drop_duplicate_expires_at_index.sql
|
||
251_listings_drop_ceiling_height.sql
|
||
254_listings_backfill_avito_rating_glued_address.sql
|
||
257_listings_backfill_yandex_source_url.sql
|
||
258_houses_imv_transient_attempts.sql
|
||
259_data_quality_drop_pct_cadastr.sql
|
||
260_houses_drop_has_panorama.sql
|
||
261_listings_search_mv_drop_placeholder_columns.sql
|
||
262_scrape_schedules_seed_oblast_city_sweeps_wave2.sql
|
||
263_scrape_schedules_wave2_cian_newbuilding_only_false.sql
|
||
264_deactivate_stale_avito_cap_mult.sql
|
||
265_deactivate_stale_yandex_cap_mult.sql
|
||
266_seed_deactivate_stale_null_segment_yandex_cian.sql
|