wing-ops/database/migration/010_postgis_geom.sql
htlee 736c6ae429 feat(scat): SCAT Mock → API 전환 + PostGIS GEOMETRY 일괄 적용
- PostGIS GEOMETRY 컬럼 추가 (010_postgis_geom.sql)
  - ASSET_ORG.GEOM (84건), ACDNT.LOC_GEOM (12건) + GIST 인덱스
- SCAT 테이블 생성 + 시드 (011_scat.sql)
  - CST_SRVY_ZONE 28건, CST_SECT 1,092건, 상세 21건
  - GEOMETRY 컬럼 + GIST 공간 인덱스
- 백엔드 API: GET /api/scat/zones, /sections, /sections/:sn
- 프론트엔드: Mock 데이터 완전 제거, API 호출로 전환
- 에러 상태 UI, USE_YN 논리삭제 조건 적용

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 23:26:51 +09:00

32 lines
1.2 KiB
SQL

-- ============================================================
-- 010: PostGIS GEOMETRY 컬럼 일괄 추가
-- 기존 NUMERIC LAT/LNG 유지 + GEOMETRY(Point, 4326) 추가
-- ============================================================
SET search_path TO wing, public;
-- PostGIS 익스텐션 확인
CREATE EXTENSION IF NOT EXISTS postgis;
-- ============================================================
-- 1. ASSET_ORG — 방제자산 기관 위치
-- ============================================================
ALTER TABLE ASSET_ORG ADD COLUMN IF NOT EXISTS GEOM GEOMETRY(Point, 4326);
UPDATE ASSET_ORG
SET GEOM = ST_SetSRID(ST_MakePoint(LNG, LAT), 4326)
WHERE LAT IS NOT NULL AND LNG IS NOT NULL AND GEOM IS NULL;
CREATE INDEX IF NOT EXISTS IDX_ASSET_ORG_GEOM ON ASSET_ORG USING GIST(GEOM);
-- ============================================================
-- 2. ACDNT — 사고 위치
-- ============================================================
ALTER TABLE ACDNT ADD COLUMN IF NOT EXISTS LOC_GEOM GEOMETRY(Point, 4326);
UPDATE ACDNT
SET LOC_GEOM = ST_SetSRID(ST_MakePoint(LNG, LAT), 4326)
WHERE LAT IS NOT NULL AND LNG IS NOT NULL AND LOC_GEOM IS NULL;
CREATE INDEX IF NOT EXISTS IDX_ACDNT_LOC_GEOM ON ACDNT USING GIST(LOC_GEOM);