From 057b451a15ba959a926db5abd594bdb184b5326a Mon Sep 17 00:00:00 2001 From: Light1YT Date: Thu, 2 Jul 2026 15:39:33 +0500 Subject: [PATCH] =?UTF-8?q?chore:=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=D0=B8=D0=B7=20=D0=B2=D0=B5=D1=82=D0=BA=D0=B8=20=D1=81=D0=BB?= =?UTF-8?q?=D1=83=D1=87=D0=B0=D0=B9=D0=BD=D0=BE=20=D0=B7=D0=B0=D1=85=D0=B2?= =?UTF-8?q?=D0=B0=D1=87=D0=B5=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=84=D0=B0=D0=B9?= =?UTF-8?q?=D0=BB=20=D0=B3=D0=B0=D0=B7-=D0=B2=D0=B5=D1=82=D0=BA=D0=B8=20(1?= =?UTF-8?q?81=5Fgas=5Fgrs=5Fcapacity.sql)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Файл принадлежит параллельной feat/gas-grs-capacity (недописан воркером); git rm --cached — файл остаётся на диске для воркера. --- data/sql/181_gas_grs_capacity.sql | 75 ------------------------------- 1 file changed, 75 deletions(-) delete mode 100644 data/sql/181_gas_grs_capacity.sql diff --git a/data/sql/181_gas_grs_capacity.sql b/data/sql/181_gas_grs_capacity.sql deleted file mode 100644 index ac40ac09..00000000 --- a/data/sql/181_gas_grs_capacity.sql +++ /dev/null @@ -1,75 +0,0 @@ --- 181_gas_grs_capacity.sql --- Forgejo #2119 Phase B1 — газовая вертикаль «свободная мощность ГРС» для ПТИЦА §3. --- --- Одна таблица gas_grs_capacity: свободная мощность ГРС (газораспределительная --- станция) из раскрытия «Газпром трансгаз Екатеринбург» (ГТЕ): --- https://ekaterinburg-tr.gazprom.ru/about/informatsiya-o-tekhnicheskoj-vozmo/ --- — инлайн HTML-таблица «Информация о технической возможности…». --- --- Источник ГЕО-БЛОКИРУЕТ non-RU IP → загрузчик РАБОТАЕТ НА ПРОДЕ (Celery / manual --- docker exec) — как rosseti-/vodokanal-лоадеры (180). Код не должен предполагать --- локальный сетевой доступ. --- --- У ГРС бывает несколько выходов («выход 1/2/3») — тогда одна ГРС = N строк с --- разным output_name; output_name IS NULL = вся ГРС целиком (одна строка). --- grs_name_norm — нормализованное имя для матча (lower, ё→е, пробелы/дефисы --- схлопнуты; префиксы «ГРС»/«АРП» СОХРАНЯЮТСЯ, т.к. различают станции). --- --- Refresh: weekly via tasks.connection_capacity_sync.sync_gas_grs_capacity. --- Порядок применения: миграция ПЕРЕД деплоем кода (schema-first, sql.md). - -BEGIN; - --- ── gas_grs_capacity ───────────────────────────────────────────────────────── --- geom NULL до Фазы C (геокод ГРС). raw jsonb — сырые ячейки строки целиком --- (неизвестные/будущие колонки таблицы ГТЕ не теряются, а падают в raw). -CREATE TABLE IF NOT EXISTS gas_grs_capacity ( - id SERIAL PRIMARY KEY, - grs_name TEXT NOT NULL, -- исходное имя ГРС - grs_name_norm TEXT NOT NULL, -- нормализованное для матча - output_name TEXT, -- «выход 1/2/3»; NULL = вся ГРС - region TEXT, -- область (Свердловская и др.) - design_capacity_th_m3_h NUMERIC, -- проектная, тыс. м³/ч - current_load_th_m3_h NUMERIC, -- текущая загрузка, тыс. м³/ч - free_capacity_th_m3_h NUMERIC, -- свободная мощность, тыс. м³/ч - free_capacity_pct NUMERIC, -- свободная, % - upgrade_due TEXT, -- срок расшивки (как в источнике) - asof DATE, -- дата актуальности данных - geom GEOMETRY(POINT, 4326), -- NULL до Фазы C геокода - raw JSONB, -- сырая строка таблицы целиком - fetched_at TIMESTAMPTZ NOT NULL DEFAULT NOW(), - - -- NULLS NOT DISTINCT: output_name nullable (у ГРС без разбивки по выходам — - -- одна строка с output_name IS NULL). Без этого ON CONFLICT не матчит строку - -- с NULL-выходом → weekly-прогон плодит дубли (те же грабли, что #140 / - -- 180_connection_capacity.sql power_tp_rp_reserves). - UNIQUE NULLS NOT DISTINCT (grs_name_norm, output_name) -); - -CREATE INDEX IF NOT EXISTS idx_gas_grs_capacity_name_norm - ON gas_grs_capacity (grs_name_norm); - -CREATE INDEX IF NOT EXISTS gist_gas_grs_capacity_geom - ON gas_grs_capacity USING GIST (geom); - -COMMENT ON TABLE gas_grs_capacity IS - 'Свободная мощность ГРС (газораспределительных станций) из раскрытия «Газпром ' - 'трансгаз Екатеринбург». Один output_name на строку («выход 1/2/3»; NULL = вся ' - 'ГРС). geom NULL до Фазы C геокода. Refresh: weekly via ' - 'tasks.connection_capacity_sync.sync_gas_grs_capacity. Forgejo #2119 Phase B1.'; - -COMMENT ON COLUMN gas_grs_capacity.grs_name_norm IS - 'Нормализованное имя ГРС для матча/дедупа (lower, ё→е, пробелы/дефисы схлопнуты; ' - 'префиксы «ГРС»/«АРП» СОХРАНЯЮТСЯ — различают станции).'; - -COMMENT ON COLUMN gas_grs_capacity.output_name IS - 'Выход ГРС («выход 1/2/3»). NULL = вся ГРС целиком (нет разбивки по выходам).'; - -COMMENT ON COLUMN gas_grs_capacity.free_capacity_th_m3_h IS - 'Свободная (резервная) мощность ГРС, тыс. м³/ч. Может быть 0 при полной загрузке.'; - -COMMENT ON COLUMN gas_grs_capacity.upgrade_due IS - 'Срок расшивки (планового увеличения пропускной способности), как в источнике ' - '(свободный текст: год / «после 2027» / пусто).'; - -COMMIT;