Geojson File Monitoring System Created - Daniel C No.1
This commit is contained in:
@@ -6,7 +6,7 @@ spring:
|
||||
jpa:
|
||||
show-sql: true
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
ddl-auto: update # 로컬 개발환경에서는 자동 테이블 생성/업데이트
|
||||
properties:
|
||||
hibernate:
|
||||
default_batch_fetch_size: 100 # ✅ 성능 - N+1 쿼리 방지
|
||||
|
||||
@@ -22,7 +22,7 @@ spring:
|
||||
leak-detection-threshold: 60000
|
||||
jpa:
|
||||
hibernate:
|
||||
ddl-auto: validate
|
||||
ddl-auto: update # 테이블이 없으면 생성, 있으면 업데이트
|
||||
properties:
|
||||
hibernate:
|
||||
jdbc:
|
||||
@@ -57,3 +57,18 @@ management:
|
||||
include:
|
||||
- "health"
|
||||
|
||||
# GeoJSON 파일 모니터링 설정
|
||||
geojson:
|
||||
monitor:
|
||||
watch-directory: ~/geojson/upload
|
||||
processed-directory: ~/geojson/processed
|
||||
error-directory: ~/geojson/error
|
||||
temp-directory: /tmp/geojson_extract
|
||||
cron-expression: "0/30 * * * * *" # 매 30초마다 실행
|
||||
supported-extensions:
|
||||
- zip
|
||||
- tar
|
||||
- tar.gz
|
||||
- tgz
|
||||
max-file-size: 104857600 # 100MB
|
||||
|
||||
|
||||
32
src/main/resources/db/migration/check_postgis.sql
Normal file
32
src/main/resources/db/migration/check_postgis.sql
Normal file
@@ -0,0 +1,32 @@
|
||||
-- PostGIS extension 및 기본 설정 확인
|
||||
-- 이 스크립트를 PostgreSQL에서 실행하여 PostGIS가 설치되어 있는지 확인
|
||||
|
||||
-- 1. PostGIS extension 설치 (이미 설치되어 있다면 무시됨)
|
||||
CREATE EXTENSION IF NOT EXISTS postgis;
|
||||
CREATE EXTENSION IF NOT EXISTS postgis_topology;
|
||||
|
||||
-- 2. 현재 설치된 확장 확인
|
||||
SELECT name, default_version, installed_version
|
||||
FROM pg_available_extensions
|
||||
WHERE name LIKE '%postgis%';
|
||||
|
||||
-- 3. Geometry 타입이 사용 가능한지 확인
|
||||
SELECT typname
|
||||
FROM pg_type
|
||||
WHERE typname = 'geometry';
|
||||
|
||||
-- 4. 테스트용 geometry 컬럼 생성 확인
|
||||
DO $$
|
||||
BEGIN
|
||||
-- 임시 테스트 테이블로 geometry 타입 확인
|
||||
DROP TABLE IF EXISTS temp_geom_test;
|
||||
CREATE TEMP TABLE temp_geom_test (
|
||||
id serial,
|
||||
test_geom geometry(Point, 4326)
|
||||
);
|
||||
RAISE NOTICE 'PostGIS geometry 타입이 정상적으로 작동합니다.';
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
RAISE NOTICE 'PostGIS 설정에 문제가 있습니다: %', SQLERRM;
|
||||
END
|
||||
$$;
|
||||
97
src/main/resources/db/migration/create_geojson_tables.sql
Normal file
97
src/main/resources/db/migration/create_geojson_tables.sql
Normal file
@@ -0,0 +1,97 @@
|
||||
-- GeoJSON 모니터링 시스템을 위한 필수 테이블 생성 스크립트
|
||||
-- dump-kamco_cds-202511201730.sql에서 추출
|
||||
|
||||
-- 1. 시퀀스 생성
|
||||
CREATE SEQUENCE IF NOT EXISTS public.tb_map_sheet_learn_data_data_uid
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
-- 2. tb_map_sheet_learn_data 테이블 생성
|
||||
CREATE TABLE IF NOT EXISTS public.tb_map_sheet_learn_data (
|
||||
data_uid bigint DEFAULT nextval('public.tb_map_sheet_learn_data_data_uid'::regclass) NOT NULL,
|
||||
data_name character varying(128),
|
||||
data_path character varying(255),
|
||||
data_type character varying(128),
|
||||
data_crs_type character varying(128),
|
||||
data_crs_type_name character varying(255),
|
||||
created_dttm timestamp without time zone DEFAULT now(),
|
||||
created_uid bigint,
|
||||
updated_dttm timestamp without time zone DEFAULT now(),
|
||||
updated_uid bigint,
|
||||
compare_yyyy integer,
|
||||
data_yyyy integer,
|
||||
data_json json,
|
||||
data_state character varying(20),
|
||||
data_state_dttm timestamp without time zone DEFAULT now(),
|
||||
data_title character varying(255),
|
||||
anal_map_sheet character varying(255),
|
||||
anal_strt_dttm timestamp without time zone,
|
||||
anal_end_dttm time without time zone,
|
||||
anal_sec bigint,
|
||||
gukuin_used character varying(20),
|
||||
gukuin_used_dttm timestamp without time zone,
|
||||
anal_state character varying(20),
|
||||
CONSTRAINT tb_map_sheet_learn_data_pkey PRIMARY KEY (data_uid)
|
||||
);
|
||||
|
||||
-- 3. 시퀀스 생성 (Geometry용)
|
||||
CREATE SEQUENCE IF NOT EXISTS public.tb_map_sheet_learn_data_geom_geom_uid
|
||||
START WITH 1
|
||||
INCREMENT BY 1
|
||||
NO MINVALUE
|
||||
NO MAXVALUE
|
||||
CACHE 1;
|
||||
|
||||
-- 4. tb_map_sheet_learn_data_geom 테이블 생성
|
||||
CREATE TABLE IF NOT EXISTS public.tb_map_sheet_learn_data_geom (
|
||||
geo_uid bigint DEFAULT nextval('public.tb_map_sheet_learn_data_geom_geom_uid'::regclass) NOT NULL,
|
||||
cd_prob double precision,
|
||||
class_before_name character varying(100),
|
||||
class_before_prob double precision,
|
||||
class_after_name character varying(100),
|
||||
class_after_prob double precision,
|
||||
map_sheet_num bigint,
|
||||
before_yyyy integer,
|
||||
after_yyyy integer,
|
||||
area double precision,
|
||||
geom public.geometry,
|
||||
geo_type character varying(100),
|
||||
data_uid bigint,
|
||||
created_dttm timestamp without time zone,
|
||||
created_uid bigint,
|
||||
updated_dttm timestamp without time zone,
|
||||
updated_uid bigint,
|
||||
CONSTRAINT tb_map_sheet_learn_data_geom_pkey PRIMARY KEY (geo_uid)
|
||||
);
|
||||
|
||||
-- 5. 외래 키 제약 조건
|
||||
ALTER TABLE ONLY public.tb_map_sheet_learn_data_geom
|
||||
ADD CONSTRAINT fk_learn_data_geom_data_uid
|
||||
FOREIGN KEY (data_uid) REFERENCES public.tb_map_sheet_learn_data(data_uid) ON DELETE CASCADE;
|
||||
|
||||
-- 6. 인덱스 생성
|
||||
CREATE INDEX IF NOT EXISTS idx_tb_map_sheet_learn_data_data_state ON public.tb_map_sheet_learn_data(data_state);
|
||||
CREATE INDEX IF NOT EXISTS idx_tb_map_sheet_learn_data_anal_state ON public.tb_map_sheet_learn_data(anal_state);
|
||||
CREATE INDEX IF NOT EXISTS idx_tb_map_sheet_learn_data_data_path ON public.tb_map_sheet_learn_data(data_path);
|
||||
CREATE INDEX IF NOT EXISTS idx_tb_map_sheet_learn_data_geom_data_uid ON public.tb_map_sheet_learn_data_geom(data_uid);
|
||||
CREATE INDEX IF NOT EXISTS idx_tb_map_sheet_learn_data_geom_geo_type ON public.tb_map_sheet_learn_data_geom(geo_type);
|
||||
|
||||
-- 7. 테이블 코멘트
|
||||
COMMENT ON TABLE public.tb_map_sheet_learn_data IS '학습데이터';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_uid IS '식별키';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_name IS '데이타명';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_path IS '경로';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_type IS '타입';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.data_state IS '처리상태';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data.anal_state IS '분석상태';
|
||||
|
||||
COMMENT ON TABLE public.tb_map_sheet_learn_data_geom IS '학습데이터GEOM정보';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.geo_uid IS '식별키';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.geom IS 'geometry정보';
|
||||
COMMENT ON COLUMN public.tb_map_sheet_learn_data_geom.data_uid IS '데이터식별키';
|
||||
|
||||
-- 완료 메시지
|
||||
SELECT 'GeoJSON 모니터링 시스템 테이블 생성 완료' as message;
|
||||
39058
src/main/resources/db/migration/dump-kamco_cds-202511201730.sql
Normal file
39058
src/main/resources/db/migration/dump-kamco_cds-202511201730.sql
Normal file
File diff suppressed because one or more lines are too long
Binary file not shown.
Reference in New Issue
Block a user