STK10-01 KRX 수급 5종 테이블 마이그레이션

작업 내용

수급 팩터 5종을 적재할 테이블을 Flyway 마이그레이션으로 추가한다. 연관된 공통 산출물이라 한 티켓(선행 병목)으로 묶는다.

  • krx_investor_trading — 투자자별 거래실적 (foreign_net·institution_net·individual_net 등)
  • krx_foreign_holding — 외국인 보유주식수·보유율·한도소진율
  • krx_valuation — PER·PBR·배당수익률
  • krx_short_selling — 공매도 거래·잔고, trade_date·disclosed_date 분리 (ADR-005)
  • krx_credit_balance — 신용융자 잔고·비중
  • marketflow_collect_log — 배치 run별·통계별 상태·행수·소요·에러 (모니터링 이력, ADR-006)

규칙: FK 컬럼·ENUM·BOOLEAN·JSON 미사용, 날짜는 DATE/DATETIME(6), 전 컬럼·테이블 COMMENT. 각 팩터 테이블 (symbol, base_date) unique (공매도는 (symbol, trade_date))로 upsert 멱등 보장. status는 VARCHAR(완료/실패/부분실패).

롤백: 역방향 DDL(DROP TABLE)로 5개 테이블 제거.

다이어그램

처리 흐름

sequenceDiagram
    participant Flyway
    participant MySQL
    Flyway->>MySQL: V..__create_krx_supply_demand_tables.sql
    MySQL-->>Flyway: 5 tables created

클래스 의존

flowchart LR
    SQL["V..create_krx_supply_demand_tables.sql"] --> DB[(MySQL)]

테스트 케이스

  • 마이그레이션이 로컬 MySQL 8.0에서 오류 없이 실행된다
  • 동일 (symbol, base_date) 중복 INSERT 시 unique 제약으로 차단된다 (upsert 멱등 전제)
  • 공매도 테이블이 trade_datedisclosed_date를 모두 보유한다
  • marketflow_collect_log에 run별·통계별 1행이 INSERT된다
  • 역방향 DDL로 6개 테이블이 깨끗이 제거된다