Оба места утверждали, что у Домклика один выделенный резидентный прокси и пула нет. Это перестало быть правдой ещё в #2800 (миграция 253 сняла резервацию узла), но текст остался — и именно на него опирался тикет #3189, поставленный под «калибровку» ограничения, которого не существует. Свип к тому же ходит через пул давно (serp.py:359), а бэкфилл подключён к нему в PR #3222. Заодно докстринг называл не тот ограничитель: свип кладёт не счётчик провалов lease, а break по первому DomClickBlockedError (#2854) — до ротации дело не доходит ни при каком счётчике, отсюда buckets_completed=0. Только комментарии, поведение не меняется. Миграция 175 уже применена, а _schema_migrations трекает по имени файла без checksum — правка текста её не перезапустит.
91 lines
3.1 KiB
PL/PgSQL
91 lines
3.1 KiB
PL/PgSQL
-- Migration 101: cad_* overlay tables for NSPD layers (epic #263 sub-A)
|
|
--
|
|
-- Creates 5 new tables for NSPD overlay data:
|
|
-- cad_territorial_zones -- layer 875838 (ПЗЗ территориальные зоны)
|
|
-- cad_red_lines -- layer 879243 (красные линии)
|
|
-- cad_engineering_structures -- layer 36328 (инженерные сооружения)
|
|
-- cad_risk_zones -- layers 872xxx (зоны рисков)
|
|
-- cad_opportunity_parcels -- layers 37294, 37298, 37299, 36473, 875845
|
|
--
|
|
-- All tables are idempotent (CREATE TABLE IF NOT EXISTS + CREATE INDEX IF NOT EXISTS).
|
|
-- Migration auto-applies via deploy.yml.
|
|
|
|
BEGIN;
|
|
|
|
-- ПЗЗ территориальные зоны (NSPD layer 875838)
|
|
CREATE TABLE IF NOT EXISTS cad_territorial_zones (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
quarter_cad TEXT NOT NULL,
|
|
zone_id TEXT NOT NULL UNIQUE,
|
|
zone_code TEXT,
|
|
zone_name TEXT,
|
|
permitted_use TEXT,
|
|
raw_props JSONB,
|
|
geom GEOGRAPHY(POLYGON, 4326),
|
|
fetched_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS cad_territorial_zones_geom_gist
|
|
ON cad_territorial_zones USING GIST(geom);
|
|
CREATE INDEX IF NOT EXISTS cad_territorial_zones_quarter
|
|
ON cad_territorial_zones (quarter_cad);
|
|
|
|
-- Red lines (NSPD layer 879243) — placeholder schema
|
|
CREATE TABLE IF NOT EXISTS cad_red_lines (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
quarter_cad TEXT NOT NULL,
|
|
feature_id TEXT UNIQUE,
|
|
name TEXT,
|
|
raw_props JSONB,
|
|
geom GEOGRAPHY(GEOMETRY, 4326),
|
|
fetched_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS cad_red_lines_geom_gist
|
|
ON cad_red_lines USING GIST(geom);
|
|
|
|
-- Engineering structures (NSPD layer 36328) — для #115 точки подключения
|
|
CREATE TABLE IF NOT EXISTS cad_engineering_structures (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
quarter_cad TEXT NOT NULL,
|
|
cad_num TEXT,
|
|
name TEXT,
|
|
structure_type TEXT,
|
|
raw_props JSONB,
|
|
geom GEOGRAPHY(GEOMETRY, 4326),
|
|
fetched_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS cad_engineering_structures_geom_gist
|
|
ON cad_engineering_structures USING GIST(geom);
|
|
CREATE INDEX IF NOT EXISTS cad_engineering_structures_quarter
|
|
ON cad_engineering_structures (quarter_cad);
|
|
|
|
-- Risk zones (NSPD layers 872xxx)
|
|
CREATE TABLE IF NOT EXISTS cad_risk_zones (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
quarter_cad TEXT NOT NULL,
|
|
feature_id TEXT UNIQUE,
|
|
risk_type TEXT,
|
|
layer_id INT,
|
|
severity TEXT,
|
|
raw_props JSONB,
|
|
geom GEOGRAPHY(GEOMETRY, 4326),
|
|
fetched_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS cad_risk_zones_geom_gist
|
|
ON cad_risk_zones USING GIST(geom);
|
|
|
|
-- Opportunity parcels (NSPD layers 37294, 37298, 37299, 36473, 875845)
|
|
CREATE TABLE IF NOT EXISTS cad_opportunity_parcels (
|
|
id BIGSERIAL PRIMARY KEY,
|
|
quarter_cad TEXT NOT NULL,
|
|
cad_num TEXT,
|
|
opportunity_type TEXT,
|
|
layer_id INT,
|
|
name TEXT,
|
|
raw_props JSONB,
|
|
geom GEOGRAPHY(GEOMETRY, 4326),
|
|
fetched_at TIMESTAMPTZ DEFAULT NOW()
|
|
);
|
|
CREATE INDEX IF NOT EXISTS cad_opportunity_parcels_geom_gist
|
|
ON cad_opportunity_parcels USING GIST(geom);
|
|
|
|
COMMIT;
|