diff --git a/backend/app/services/scrapers/gisogd66.py b/backend/app/services/scrapers/gisogd66.py index fa2f86b1..459a7362 100644 --- a/backend/app/services/scrapers/gisogd66.py +++ b/backend/app/services/scrapers/gisogd66.py @@ -277,8 +277,12 @@ def _upsert_permit(db: Session, rec: dict[str, Any]) -> str: :doc_group, :doc_num, :doc_name, :date_doc, :date_reg, :approved_org, :source_schema, :source_key, CAST(:cad_nums AS text[]), - CASE WHEN :geojson IS NULL THEN NULL - ELSE ST_Multi(ST_SetSRID(ST_GeomFromGeoJSON(:geojson), 4326)) END, + -- CAST обязателен: без него ни одно вхождение :geojson не даёт Postgres + -- тип параметра (ST_GeomFromGeoJSON перегружена text/json/jsonb) → + -- psycopg.errors.AmbiguousParameter на КАЖДОЙ строке (прод-прогон #2367). + CASE WHEN CAST(:geojson AS text) IS NULL THEN NULL + ELSE ST_Multi(ST_SetSRID( + ST_GeomFromGeoJSON(CAST(:geojson AS text)), 4326)) END, NOW(), NOW() ) ON CONFLICT (doc_group, doc_num) DO UPDATE