Миграция 184: адресные точки выхода газораспределительной сети (форма 6
приказа ФАС №960, раскрытие АО «Екатеринбурггаз», ~1037 строк/мес).
- grs_name_norm нормализуется как в gas_grs_capacity (181) → JOIN «точка
выхода → свободная мощность ГРС» без FK (источники разные: ГТЕ vs ЕКгаз).
- Размерность млн. м³/МЕСЯЦ (НЕ тыс. м³/ч как в 181) — отражено в COMMENT.
- «0.000*» = требуется гидрорасчёт: free_capacity_mln_m3 NULL +
free_capacity_needs_calc TRUE (не путать с настоящим 0).
- is_forecast разводит факт («за <месяц>») и прогноз («на <месяц>») одного
period_month; логический UNIQUE(grs_name_norm, outlet_name, period_month,
is_forecast) — все 4 колонки NOT NULL, обычный UNIQUE (без NULLS NOT DISTINCT).
- Индексы: GIST(geom), btree(grs_name_norm), btree(period_month DESC).
- geom NULL до PR-3 (геокод DaData) и навсегда у ~81% строк без адреса.
Идемпотентно (IF NOT EXISTS), BEGIN/COMMIT. Провалидировано dry-run в
ephemeral postgis/postgis:16-3.4 (prod-образ): двойной прогон,
fact+forecast coexist, ON CONFLICT upsert, отклонение дубля.
PR-план #2119 B2: PR-1 schema (этот) · PR-2 лоадер · PR-3 геокод · PR-4 §3.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>