gendesign/data/sql
bot-backend 3325801355
All checks were successful
CI Trade-In / changes (pull_request) Successful in 8s
CI / changes (pull_request) Successful in 10s
CI Trade-In / backend-tests (pull_request) Has been skipped
CI Trade-In / browser-tests (pull_request) Has been skipped
CI Trade-In / frontend-checks (pull_request) Has been skipped
CI / frontend-tests (pull_request) Has been skipped
CI / openapi-codegen-check (pull_request) Successful in 2m8s
CI / backend-tests (pull_request) Successful in 17m21s
fix(ptica): ключ gisogd_permits — id документа на портале, а не (группа, номер) (#2986)
`UNIQUE (doc_group, doc_num)` вводился, чтобы склеивать ОДИН документ,
пришедший из двух схем портала. Замер 20.08.2026 показал, что задача,
ради которой ключ введён, почти отсутствует, а побочный эффект огромен:
docNum у ГИСОГД НЕ уникален — разрешение и изменения к нему носят один
номер.

    группа   документов   различных key   различных docNum   схлопывается
    DocRS         6098          6096            4305             1793
    DocRV         5419          5415            4969              450
    DocIZ          548           547             393              155

    общих docNum между схемами (DocRS): 2   ← ради этого ключ и вводился
    общих key    между схемами (DocRS): 2   ← те же два

На проде 9182 строки против 12 065 документов на портале — нет 23.9 %
реестра. Пример 66-06-06-2026: портал отдаёт два документа (key …719586 —
само разрешение, key …752293 — изменения к нему), а UPSERT с
предпочтением позднего date_reg оставлял только изменение. Так вытеснено
598 из 4320 строк РНС (13.8 %) — в §6 на месте разрешения показывается
изменение к нему, без признака подмены.

Ключ стал `UNIQUE (source_key)`: разделяет разрешение и изменения (разные
key) и по-прежнему склеивает настоящие межсхемные дубли (у них key
ОБЩИЙ — ровно 7 записей по всем группам). Дедуп перед сменой не нужен:
source_key на проде уже уникален (9182 из 9182, NOT NULL).

Заодно группа DocIZ добавлена в GROUP_CODE — её не было вовсе, 548
документов не грузились. CHECK расширен значением 'IZ'.

§6 сужена до РНС/РВЭ ЯВНО: агрегат обещает total_count = rs_count +
rv_count, а строки 'IZ' попадали бы в total и ни в один счётчик.
Показывать ли изменения отдельной строкой — вопрос продуктовый (#2986);
до его решения сужение стоит в запросе, а не держится на том, что таких
строк «пока нет».

Проверки:
- два гейта на лоадер (GROUP_CODE и цель ON CONFLICT) — БЕЗ базы,
  двусторонние: на origin/main дают конкретные неверные значения
  ({'DocRS','DocRV'} и старый ON CONFLICT в тексте запроса);
- гейт на §6 и контроль инварианта total = rs + rv на данных — красные
  на origin/main;
- герметичная репетиция миграции на временной копии: со старым ключом
  разрешение и изменение схлопываются в одну строку (и остаётся именно
  изменение — как на проде), после миграции живут раздельно; межсхемный
  дубль по-прежнему склеивается; CHECK принимает 'IZ' и отвергает мусор.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-20 22:08:02 +05:00
..
auth feat(auth): роли и трёхзначное состояние доступа в БД auth [PR-2a/6] 2026-08-01 00:28:37 +03:00
01_schema_rosreestr_deals.sql fix(db): DROP dead BRIN index rosreestr_deals_period_brin (#122) 2026-05-14 23:29:01 +03:00
02_load_all_quarters.sh fix 2026-04-30 22:16:44 +03:00
02b_load_via_tunnel.py fix 2026-04-30 22:16:44 +03:00
03_materialized_views.sql add data 2026-04-26 22:30:52 +03:00
10_schema_domrf.sql add data 2026-04-26 22:30:52 +03:00
11_load_domrf.py add data 2026-04-26 22:30:52 +03:00
20_schema_domrf_extras.sql add data 2026-04-26 22:30:52 +03:00
21_load_domrf_extras.py add data 2026-04-26 22:30:52 +03:00
30_scrape_domrf.py add anal 2 2026-04-27 13:05:36 +03:00
31_schema_domrf_full.sql add data 2026-04-26 22:30:52 +03:00
31_schema_domrf_raw.sql add data 2026-04-26 22:30:52 +03:00
32_load_domrf_full.py add data 2026-04-26 22:30:52 +03:00
32_load_domrf_raw.py add data 2026-04-26 22:30:52 +03:00
33_schema_domrf_lazy.sql add anal 2 2026-04-27 13:05:36 +03:00
34_load_domrf_lazy.py add anal 2 2026-04-27 13:05:36 +03:00
35_schema_domrf_stats.sql add anal 2 2026-04-27 13:05:36 +03:00
36_parse_xlsx_stats.py add anal 2 2026-04-27 13:05:36 +03:00
37_cleanup_redundant.sql add anal 2 2026-04-27 13:05:36 +03:00
38_relations_fix.sql add anal 2 2026-04-27 13:05:36 +03:00
39_territory_aliases.sql add anal 2 2026-04-27 13:05:36 +03:00
40_relations.sql add data 2026-04-26 22:30:52 +03:00
40_scrape_history.py add anal 2 2026-04-27 13:05:36 +03:00
41_load_history.py add anal 2 2026-04-27 13:05:36 +03:00
42_schema_breakdown_widen.sql add anal 2 2026-04-27 13:05:36 +03:00
43_anton_import.sql add anal 2 2026-04-27 13:05:36 +03:00
44_import_anton_db.py add anal 2 2026-04-27 13:05:36 +03:00
45_relations_v2.sql add anal 2 2026-04-27 13:05:36 +03:00
50_schema_kn_extensions.sql add interactive parser of наш.дом.рф ЖК+flats with stealth Playwright 2026-04-27 17:58:40 +03:00
50_scrape_kn_flats.py add domrf extras parser (sale_graph + sales_agg + infra + photos) + 2026-04-27 18:35:46 +03:00
51_schema_kn_extras.sql add domrf extras parser (sale_graph + sales_agg + infra + photos) + 2026-04-27 18:35:46 +03:00
52_import_prinzip_crm.py ship #13-16: multi-target Dockerfile, per-object drill-in, CRM pipeline, 2026-04-27 19:32:37 +03:00
52_schema_prinzip_crm.sql ship #13-16: multi-target Dockerfile, per-object drill-in, CRM pipeline, 2026-04-27 19:32:37 +03:00
53_schema_kn_thumbs.sql fix ui lag 2026-04-27 20:26:55 +03:00
54_schema_scrape_log.sql add logs 2026-04-27 20:51:44 +03:00
55_schema_scrape_resume.sql fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
56_fetch_ekb_districts.py feat(geo): ЖК → district mapping через PostGIS-полигоны OSM (Limit_District_Geometry closed) 2026-04-29 08:03:38 +03:00
56_schema_ekb_districts_geom.sql feat(geo): ЖК → district mapping через PostGIS-полигоны OSM (Limit_District_Geometry closed) 2026-04-29 08:03:38 +03:00
57_kn_objects_district.sql feat(geo): ЖК → district mapping через PostGIS-полигоны OSM (Limit_District_Geometry closed) 2026-04-29 08:03:38 +03:00
58_fetch_cad_quarters_nspd.py sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
58_schema_cad_quarters.sql sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
59_backfill_obj_cad_quarter.sql sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
60_v_zk_rosreestr_velocity.sql sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
61_import_nspd_batch.py sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
62_scrape_nspd_full.py sprint1: nspd scraper industrialization, per-bucket elasticity, cadastre cross-check, sentry releases 2026-04-30 21:51:19 +03:00
63_schema_nspd_runs.sql fix 2026-04-30 22:16:44 +03:00
64_v_zk_rosreestr_velocity.sql fix 2026-04-30 22:16:44 +03:00
65_partitions_rosreestr_2024_h1.sql fix 2026-04-30 22:16:44 +03:00
66_indexes_recommend.sql audit-fix: 27mo окно, MODE bucket, индексы recommend_mix 2026-04-30 22:41:43 +03:00
67_refresh_ekb_districts_median.sql fix(scrape): SQLAlchemy text() парсил ':00:' regex как named-param 2026-04-30 23:16:11 +03:00
68_schema_objective.sql feat(objective): integrate api.objctv.ru — auth, schema, weekly sync 2026-05-07 21:04:00 +03:00
69_objective_smoke.py ignore 2026-05-07 21:04:38 +03:00
69b_objective_minimal.py ignore 2026-05-07 21:04:38 +03:00
70_parse_objective_raw.py fix(objective parser): use_float=True in ijson + default=str in json.dumps (#321) 2026-05-17 19:11:25 +00:00
71_etl_anton_sqlite_to_pg.py feat(objective): full sync pipeline + dynamic admin config 2026-05-10 19:54:15 +03:00
72_objective_sync_config.sql feat(objective): full sync pipeline + dynamic admin config 2026-05-10 19:54:15 +03:00
73_complexes_master.sql fix(sql): wrap 73_complexes_master.sql in BEGIN/COMMIT (atomic apply) (#125) 2026-05-14 23:29:28 +03:00
74_dedupe_unified_views.sql feat(db): canonical complexes + unified views + naming consistency 2026-05-10 21:11:20 +03:00
75_unification_naming.sql feat(db): canonical complexes + unified views + naming consistency 2026-05-10 21:11:20 +03:00
76_complex_connectivity.sql feat(geo): NSPD bulk-fetcher без Playwright + resume-friendly UI 2026-05-11 08:53:28 +03:00
77_nspd_geo_jobs.sql refactor(nspd-geo): unify on rosreestr2coord v5, drop legacy column 2026-05-11 14:13:33 +03:00
78_drop_use_rosreestr2coord.sql refactor(nspd-geo): unify on rosreestr2coord v5, drop legacy column 2026-05-11 14:13:33 +03:00
79_relax_objective_raw_payload_null.sql fix(scrape-objective): stream-parse lots_pf via ijson to avoid OOM (#315) 2026-05-17 16:37:30 +00:00
80_complexes_backfill_nulls.sql feat(db): backfill complexes nulls + add job_settings (migrations 80, 81) 2026-05-11 15:30:44 +03:00
81_job_settings.sql feat(db): backfill complexes nulls + add job_settings (migrations 80, 81) 2026-05-11 15:30:44 +03:00
82_osm_poi_ekb.sql feat(db): osm_poi_ekb table for site-finder POI analysis 2026-05-11 18:06:28 +03:00
83_cad_parcels_geom.sql feat(site-finder): cad_parcels_geom migration + POI markers on map + bulk-job UX 2026-05-11 19:54:56 +03:00
84_osm_noise_sources_ekb.sql feat(db): osm_noise_sources_ekb for site-finder noise scoring 2026-05-11 20:35:27 +03:00
85_pzz_zones_ekb.sql fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
86_v_bucket_success_score.sql fix(sf-20): adaptive district threshold 30→15 with data_confidence flag 2026-05-17 16:34:52 +03:00
87_on_demand_indexes.sql feat(site-finder): auto-fetch cadastre geometry on-demand (#93) (#95) 2026-05-12 09:02:17 +03:00
88_nspd_quarter_dumps.sql feat(db): add nspd_quarter_dumps table for PKK harvest persistence (#94 pt.3/4) (#110) 2026-05-12 18:22:50 +03:00
89_drop_dead_brin_rosreestr_deals.sql fix(db): DROP dead BRIN index rosreestr_deals_period_brin (#122) 2026-05-14 23:29:01 +03:00
90_user_weight_profiles.sql feat(db): schema user_weight_profiles (#114 sub-PR 1/4 — foundation) (#136) 2026-05-15 00:19:33 +03:00
91_engineering_networks_191fz.sql feat(infra): auto-apply data/sql/*.sql migrations in deploy pipeline (#150) (#151) 2026-05-15 08:06:54 +03:00
92_cad_bulk_layers.sql fix(db): retire ALL legacy cad_buildings index names before rename (#168 hotfix2) (#174) 2026-05-15 14:09:40 +03:00
93_cad_parcels_geom_multipolygon.sql fix(cadastre): cad_parcels.geom Polygon -> MultiPolygon (migration 93) (#185) 2026-05-15 18:52:38 +03:00
94_mv_layout_velocity.sql feat(analytics): mv_layout_velocity MV + refresh helper (#113 PR B) (#194) 2026-05-16 08:26:59 +00:00
95_mv_quarter_price.sql feat(analytics): mv_quarter_price_per_m2 MV + refresh helper (#33 D1 PR A) (#209) 2026-05-16 11:12:01 +00:00
96_ekburg_construction_permits.sql feat(permits): ЕКБ РНС/РВЭ xlsx parser + schema + ETL (#105 PR A) (#211) 2026-05-16 11:41:21 +00:00
97_objective_backfill_indexes.sql feat(etl): objective_complex_mapping backfill via pg_trgm (#203) (#214) 2026-05-16 12:47:09 +00:00
98_nspd_quarter_dumps_opportunity_flag.sql fix(nspd): rename migration 89→98, fix red lines ST_Area→ST_Length (#220) 2026-05-16 19:33:14 +03:00
99_nspd_entities_denorm.sql fix(sql): escape apostrophe in migration 99 COMMENT (deploy hotfix) 2026-05-16 21:02:00 +03:00
99a_quarter_price_index.sql feat(db): mv_quarter_price_index — quarter price-index из ДКП (Refs #760) (#792) 2026-05-30 17:05:51 +00:00
99b_grant_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
100_fix_mv_layout_velocity_weighted_avg.sql fix(sf-21): mv_layout_velocity weighted AVG — P0 data corruption 2026-05-17 16:53:36 +03:00
100_tradein_fdw_role.sql feat(tradein): postgres_fdw live read of gendesign.cad_buildings (replaces snapshot) (#493) 2026-05-24 08:57:30 +00:00
100_user_weight_profiles_default_seed.sql feat(#114): seed 3 default weight presets + include_system API param 2026-05-16 22:49:56 +03:00
101_user_custom_pois.sql feat(#254): user_custom_pois — backend schema + CRUD + scoring integration 2026-05-17 09:34:33 +03:00
102_cad_nspd_overlay_tables.sql fix(#265 review): CRS 3857→4326 + stable zone_id hash + rename 102 + tx comment 2026-05-17 10:45:52 +03:00
103_seed_prinzip_mappings.sql fix(sf-04): seed PRINZIP project mappings в objective_complex_mapping 2026-05-17 11:57:06 +03:00
104_seed_bulk_mappings.sql fix(sf-04b): bulk seed mappings для всех ЖК с активностью в Objective 2026-05-17 13:36:34 +03:00
105_add_sales_started_flag.sql feat(sf-18): is_sales_started flag для domrf_kn_objects (#292) 2026-05-17 14:09:21 +00:00
106_backfill_obj_class_from_ai_description.sql fix(sf-15): rename migration 105 → 106 (collision with PR #292 sf-18) 2026-05-17 17:03:16 +03:00
107_backfill_price_per_m2.sql fix(sf-16): derive price_per_m2 from price_rub in _norm_flat + backfill SQL (#298) 2026-05-17 14:32:23 +00:00
108_bug22a_kn_missing_fields_audit.sql fix(bug-22a): map missing kn-API fields (flat_number/living_area/wall_type/energy_eff) + backfill (#302) 2026-05-17 14:59:02 +00:00
110_22j_dedup_infrastructure.sql fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
111_22f_domrf_obj_checks.sql feat(22f): domrf_obj_checks table — 6 "Проверено на наш.дом.рф" checks (#303) 2026-05-17 15:07:24 +00:00
112_22i_domrf_documents.sql feat(22i): domrf_kn_documents new table + parser (#305) 2026-05-17 15:21:31 +00:00
113_22begh_kn_schema_extension.sql feat(22begh): schema extension — flats+6 / objects+30 / developers+4 / metro_top3 (#306) 2026-05-17 15:26:59 +00:00
114_22c_flat_plans.sql feat(22c): domrf_kn_flat_plans new table + parser stub (#308) 2026-05-17 15:39:34 +00:00
115_trade_in_estimates.sql feat(trade-in): TI-1 mock /trade-in/estimate endpoint + Pydantic + SQL migration (#316) 2026-05-17 16:45:06 +00:00
116_obj2_multi_feature_matcher.sql fix(obj-2): trim migration 116 to GIST index only — INSERT CTE timed out in deploy (#326) 2026-05-17 20:21:58 +00:00
117_obj2_mapping_backfill_fast.sql feat(obj-2): mapping backfill via pre-materialized temp tables (migration 117) (#327) 2026-05-17 20:34:42 +00:00
118_22d_catalog_object_scraped_at.sql feat(22d): domrf_catalog_object scraper — fill ~25 NULL kn_objects cols from SSR __NEXT_DATA__ (#335) 2026-05-17 21:26:22 +00:00
118_pilot_requests.sql feat(sf-b3): POST /pilot/request + pilot_requests table 2026-05-18 00:01:35 +03:00
119_parcel_user_status.sql feat(sf-b1): GET /parcels/by-bbox — map entry endpoint + parcel_user_status table (#336) 2026-05-17 21:25:48 +00:00
120_backfill_kn_price_per_m2.sql fix(tradein): backfill kn price_per_m2 via sale_graph + peer median (#573) (#625) 2026-05-28 13:50:45 +00:00
121_backfill_obj_class_kn_api.sql fix(tradein): backfill kn obj_class (parser + 3-pass) (#572) (#628) 2026-05-28 15:04:32 +00:00
122_grant_rosreestr_to_fdw_reader.sql feat(tradein): автоматизация cian-backfill + rosreestr-import через scheduler (#560 #563) (#630) 2026-05-28 15:31:24 +00:00
123_macro_indicator.sql feat(site-finder): macro_indicator table + backfill + reader (#945 PR A) (#963) 2026-06-02 18:41:28 +00:00
124_domrf_kn_free_flats.sql feat(domrf): persist domrf_kn_objects.free_flats (#950 PR A) (#1002) 2026-06-02 20:06:29 +00:00
125_supply_layers.sql feat(db): supply_layers store + latest view (#950 PR B) (#1003) 2026-06-02 20:21:04 +00:00
126_domrf_housing_macro.sql feat(db): Dom.РФ housing/escrow → macro_indicator §7.10 (#946, partial) 2026-06-03 17:05:33 +05:00
127_analysis_runs.sql feat(db): analysis_runs versioned store + latest-view §22 (#993) 2026-06-03 17:14:47 +05:00
128_supply_layers_dev_group_key.sql fix(supply-layers): thread dev_group_name into L3 upsert key (#970 CRITICAL) 2026-06-04 10:06:30 +05:00
129_cad_parcels_quarter_cad_trigger.sql fix(db): auto-derive cad_parcels.quarter_cad_number trigger (on-demand ingest 500) 2026-06-04 12:19:21 +05:00
130_cad_parcels_default_source.sql fix(db): default cad_parcels.source in trigger (on-demand ingest 2nd NOT NULL gap) 2026-06-04 12:49:46 +05:00
131_district_vocab_map.sql feat(sql): add ekb_district_alias micro->admin vocab bridge (131) 2026-06-05 06:39:50 +05:00
132_ird_overlays.sql feat(sql): ird_overlays durable overlay store for ИРД geometry (#1078) 2026-06-06 18:08:40 +00:00
133_zone_regulation_cache.sql feat(sf): zone_regulation_cache — ПЗЗ-регламент по zone_index + числовой экстракт (#1099) 2026-06-06 19:31:28 +00:00
134_planning_projects.sql feat(sf): ППТ/ПМТ WFS ingest → planning_projects (future-supply, #1104) 2026-06-06 20:25:23 +00:00
135_newbuilding_listings.sql feat(sf): newbuilding_listings house-grain таблица для future-ЖК слоя (#1108) 2026-06-06 21:48:51 +00:00
136_land_reservation.sql feat(sf): ПАГЕ-парсер изъятия/резервирования → land_reservation (#1118) 2026-06-07 10:15:03 +00:00
137_ekb_krt_sites.sql feat(sf): scraper реестра КРТ-площадок ЕКБ → ekb_krt_sites (#1126) 2026-06-07 11:24:49 +00:00
138_ekb_ppt_tep.sql feat(sf): ППТ/ПМТ ТЭП-парсер (Табл.11/12/13) → ekb_ppt_tep MVP (#1133) 2026-06-07 11:54:40 +00:00
139_ekb_genplan_functional_zone.sql feat(sf): ingest функц.зон генплана ЕКБ-2045 из ГИСОГД-СО WFS → ekb_genplan_functional_zone (#1137) 2026-06-07 12:03:39 +00:00
140_domrf_documents_unique_nulls_not_distinct.sql fix(db): dedupe domrf_kn_documents + UNIQUE NULLS NOT DISTINCT (#1206) 2026-06-13 06:17:13 +00:00
140_ekb_krt_geometry.sql perf(sf): КРТ-геометрия в БД, _krt_at из БД вместо живого WFS (#1139) 2026-06-07 12:14:35 +00:00
141_okn_objects.sql feat(sf): ingest ОКН-объектов ЕКБ из АИС ЕГРКН (точки+категория) → okn_objects (#1141) 2026-06-07 12:51:18 +00:00
142_pat_subzones.sql feat(sf): подзоны ПАТ Кольцово → pat_subzones (#1150) 2026-06-07 14:43:07 +00:00
143_genplan_makevalid_backfill.sql fix(sf): ST_MakeValid genplan geom + backfill 881 invalid polygons (#1157) 2026-06-07 17:59:04 +00:00
144_audit_log.sql feat(rbac): add analyst role + §19 audit-log middleware (#962) 2026-06-08 12:16:19 +05:00
145_insight.sql feat(insights): manual-entry Insight entity CRUD + §19 audit (#948 part A) 2026-06-08 12:41:39 +05:00
146_location.sql feat(location): district-level Location entity + indices (#948 part B) 2026-06-08 13:28:19 +05:00
147_location_demand_comment.sql fix(db): sync location.demand_index comment to city-relative (#948) 2026-06-08 14:04:51 +05:00
148_own_planned_project.sql fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
149_developer_attribution.sql feat(site-finder): детерминированная атрибуция застройщика в analyze (#1088) 2026-06-13 16:13:45 +05:00
150_objective_mapping_backfill.sql chore(objective): fuzzy backfill objective_complex_mapping +115 dev-corroborated (#307 OBJ-2) 2026-06-13 18:50:57 +05:00
151_cad_parcels_geom_unavailable.sql fix(cadastre): NSPD 500-retry + per-layer skip (#252) + disable dead pzz-beat (#259) + geom backfill (#200) 2026-06-13 20:45:05 +05:00
152_mv_ddu_price_indicator.sql feat(analytics): velocity-anomaly alerts (#17) + ARN ДДУ price indicator (#99) 2026-06-13 22:04:49 +05:00
153_objective_lots_district_price_idx.sql perf(db): covering-index objective_lots district-price (#70) + 152-ФЗ/perf audit docs (#70 #79) 2026-06-14 00:09:09 +05:00
154_ekb_district_demographics.sql feat(site-finder): POI saturation per capita по районам ЕКБ (#42) (#1329) 2026-06-14 15:05:22 +00:00
155_objective_mapping_trgm_backfill.sql feat(sql): conservative trgm backfill objective_complex_mapping +23 (#307 OBJ-2) (#1331) 2026-06-14 15:51:38 +00:00
156_objective_mapping_corroborated_v4.sql feat(sql): corroborated trgm backfill objective_complex_mapping +17 (#307 OBJ-2 r2) (#1333) 2026-06-14 16:45:55 +00:00
157_analyze_hotpath_indexes.sql perf(sql): geography GIST + covering index для analyze-пути Site Finder (157) (#1334) 2026-06-14 16:45:22 +00:00
158_pzz_zones_ekb_nulls_not_distinct.sql fix(migrations): живые миграции для прод-фиксов #1361/#1419/#1364 2026-06-15 21:31:28 +03:00
159_alter_cad_territorial_zones_multipolygon.sql fix(cadastre): cad_territorial_zones MULTIPOLYGON typmod + ST_Multi coercion (#1344) 2026-06-17 20:23:56 +03:00
160_refresh_ekb_districts_median_dedup.sql fix(sql): dedup deals-to-district assignment in ekb districts median refresh (#1352) 2026-06-17 20:29:34 +03:00
161_supply_layers_view_devgroup_key.sql fix(sql): v_supply_layers_latest keep dev_group_name in DISTINCT ON key (#1650) 2026-06-17 20:37:46 +03:00
162_drop_district_economics_sat_factor.sql fix(sql): ALTER TABLE IF EXISTS in migration 162 — district_economics absent on main DB (deploy red) 2026-06-17 20:02:06 +00:00
163_emiss_pk_period_type.sql fix(sql): emiss backfill period_type='quarter' to match scraper (#1606 review) 2026-06-17 21:45:12 +03:00
164_mv_sales_tracker_velocity_absorption.sql chore(sql): renumber sales-tracker MV migration 161→164 (avoid collision) 2026-06-17 22:36:39 +03:00
165_velocity_mapping_reviewed_gate.sql fix(site-finder): gate velocity on is_reviewed objective_complex_mapping (#307 OBJ-2) 2026-06-17 22:32:52 +03:00
166_objective_lots_history_writer.sql chore(sql): renumber objective history writer migration 164→166 (avoid collision) 2026-06-17 22:43:55 +03:00
167_riasurt_sverdl.sql fix(riasurt): renumber migration 163→167 + guard quarterly harvest behind flag (#108 review) 2026-06-17 22:45:23 +03:00
168_complexes_makepoint_geog_idx.sql feat(site-finder): geo-radius market-price calibration in /analyze (#1881 follow-up) 2026-06-25 07:59:56 +00:00
169_obj_class_fallback.sql feat(etl): housing-class normalization fallback via yandex_realty trigram match (#38) (#1911) 2026-06-26 07:44:25 +00:00
170_osm_utility_infrastructure_ekb.sql feat(site-finder): OSM engineering-networks loader + endpoint (#1746) (#1930) 2026-06-26 20:01:00 +00:00
171_objective_crm_report_month_idx.sql fix(perf): move migration 171 to repo-root data/sql/ so the deploy applies it 2026-06-27 10:06:33 +05:00
172_fix_v_bucket_success_score_obj_class.sql fix(report): newbuild-consistent district median + obj_class dedup (#1953) 2026-06-27 15:10:49 +05:00
173_objective_lots_physflat_idx.sql fix(forecast): посегментный+дедуплицированный индекс дефицита (#1959) 2026-06-27 22:50:58 +05:00
174_domrf_kn_flats_obj_snapshot_idx.sql fix(audit): index for flats_latest, coerce max_height_m, hide empty reg-date (#1953) 2026-06-28 03:19:18 +05:00
175_v_objective_lots_latest.sql perf(objective): request-path consumers dedup inline, not via whole-table view (#1964) 2026-06-28 05:00:47 +05:00
176_objective_lots_physflat_covering_idx.sql perf(objective_lots): inline-pushdown competitors._SOLD_COUNT_SQL + covering physflat index (#1953) (#2054) 2026-06-28 14:07:49 +00:00
177_drop_dead_objective_lots_indexes.sql perf(objective_lots): drop 3 dead indexes (status/rooms_area/bank) — write-amp (#1953) (#2056) 2026-06-28 14:39:05 +00:00
178_schema_cadastral_value.sql feat(sitefinder): rosreestr cadastral-value loader + 0.7x denoise of quarter price index 2026-06-28 19:45:35 +03:00
178b_load_cadastral_value.py feat(sitefinder): rosreestr cadastral-value loader + 0.7x denoise of quarter price index 2026-06-28 19:45:35 +03:00
179_mv_quarter_price_cadastral_floor.sql fix(sql): re-grant mv_quarter_price_index to tradein_fdw_reader (C3, #2583) (#2641) 2026-08-04 18:42:22 +00:00
180_connection_capacity.sql feat(site-finder): резервы мощности для ТП — электро+вода на карте §3 (#2119 Фаза A) (#2120) 2026-07-02 08:36:51 +00:00
181_gas_grs_capacity.sql feat(site-finder): газ — свободная мощность ГРС + пометка ЕЭСК в §3 (#2119 Фаза B1) (#2123) 2026-07-02 12:54:05 +00:00
182_eesk_heat_reserves.sql feat(site-finder): ЕЭСК-резервы городских ПС/ТП + тепло из ФГИС ФАС (#2119 B2) (#2165) 2026-07-02 16:44:57 +00:00
183_objective_lots_physflat_covering_v2_price_idx.sql perf(db): physflat-covering индекс v2 с price_per_m2_rub в INCLUDE (#2177 follow-up) (#2243) 2026-07-03 00:49:08 +00:00
184_gas_grs_outlet_points.sql feat(db): схема gas_grs_outlet_points — форма 6 Екатеринбурггаза (#2119 B2, PR-1/4) (#2246) 2026-07-03 02:15:50 +00:00
185_tradein_osm_poi_view.sql feat(site-finder): view v_tradein_osm_poi_ekb для FDW-моста trade-in location-coef (#2045) 2026-07-03 22:54:03 +03:00
186_objective_lots_history_offer_trend_covering_idx.sql perf(sql): покрывающий индекс под offer-trend §4.3 — 6.8с → 1.1с (миграция 186) (#2331) 2026-07-03 22:26:29 +00:00
187_gisogd_permits.sql feat(scrapers): реестр РНС/РВЭ ГИСОГД-СО из открытого API — миграция + лоадер (#2367 PR-1) (#2370) 2026-07-04 03:26:07 +00:00
188_regrant_quarter_price_index_fdw.sql fix(sql): re-grant mv_quarter_price_index to tradein_fdw_reader (C3, #2583) (#2641) 2026-08-04 18:42:22 +00:00
188_tradein_osm_poi_view_relax_freshness.sql fix(tradein/location): заменить сломанный коэффициент локации на калиброванный индекс (#2531) 2026-07-26 21:48:15 +00:00
189_land_reservation_nulls_not_distinct.sql fix(ptica): land_reservation перестаёт копить дубли — 91% таблицы были копиями (#2464) (#2966) 2026-08-20 10:16:34 +00:00
190_user_weight_profiles_one_default.sql fix(ptica): у пользователя не может быть двух дефолтных профилей весов (#2464) 2026-08-20 16:58:48 +05:00
191_gisogd_permits_key_by_source_key.sql fix(ptica): ключ gisogd_permits — id документа на портале, а не (группа, номер) (#2986) 2026-08-20 22:08:02 +05:00
decode_to_file.py fix(week-review): автофиксы код-ревью — 169 issue (label «week ревью 1») 2026-06-15 20:21:11 +05:00
upload_server.py add data 2026-04-26 22:30:52 +03:00