Skip to content

Feat/be: Flyway DDL V2 — payment 테이블 마이그레이션 작성 #85

Description

@jjang0617

📝 작업 내용

PaymentJpaEntity 기준으로 V2__create_payment_tables.sql Flyway 마이그레이션 파일을 작성한다.
V1(community 피드)은 이미 존재하며, payment 테이블 DDL이 없어 ddl-auto=validate 및 운영 배포 시 스키마 불일치가 발생할 수 있다.

  • payment 테이블 CREATE + 인덱스
    • payment_key UNIQUE INDEX (tossPaymentKey 멱등성 보장)
    • (status, created_at) 복합 INDEX (타임아웃 Job findByStatusAndCreatedAtBefore 쿼리)
    • order_id INDEX (주문 기준 조회)
  • FK는 V1 컨벤션과 동일하게 의도적 생략 (앱 레벨 정합성, MSA 전환 대비)

컬럼 목록

컬럼명 타입 제약 설명
id BIGINT PK, AUTO_INCREMENT 결제 식별자
order_id BIGINT NOT NULL 주문 참조 (FK 생략)
payment_key VARCHAR(255) UNIQUE tossPaymentKey (PG 고유 키, 멱등성 키)
amount BIGINT NOT NULL 결제 금액 (원 단위)
method VARCHAR(100) NULL 결제 수단 (CARD 등, 웹훅 수신 후 기록)
status VARCHAR(50) NOT NULL PENDING / SUCCESS / FAILED
paid_at DATETIME(6) NULL 결제 성공 시각
failed_at DATETIME(6) NULL 결제 실패 시각
created_at DATETIME(6) NOT NULL 생성 시각 (변경 불가)
version INT NOT NULL DEFAULT 0 낙관적 락 버전

Definition of Done (DoD)

  • 핵심 비즈니스 로직에 대한 테스트 코드를 작성했는가?
  • 동시성 테스트를 통과했는가? (재고·주문·결제 경로 해당 시)
  • SSOT 문서(api-spec, invariants, erd-design 등)를 동시 갱신했는가?
  • RestDocs API 문서를 업데이트했는가? (API 추가·수정 시)
  • 로컬 환경에서 엔드투엔드 시나리오를 직접 확인했는가?
  • 소스코드 내 민감 정보(API Key, 패스워드 등)가 없는가?

📅 마감 기한

  • 2026-06-07

Related

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions