Skip to content

flyway: DB 스키마 enum → VARCHAR 표준화 및 제약조건 정리 #170

@ryuwldnjs

Description

@ryuwldnjs

배경

V1__init_schema.sql이 prod DDL을 그대로 반영하여 생성됨. prod에는 MySQL native enum 컬럼이 남아있어 별도 마이그레이션으로 표준화 필요.

작업 항목

1. enum → VARCHAR 변환

Hibernate @Enumerated(STRING) + VARCHAR가 표준. enum 값 추가 시 ALTER TABLE 없이 처리 가능.

테이블 컬럼 변경 전 변경 후
member role enum('ROLE_USER','ROLE_ADMIN') VARCHAR(20)
team recommendation_status enum('ACTIVE','INACTIVE') VARCHAR(16)
team problem_difficulty_preset enum('EASY','NORMAL','HARD','CUSTOM') VARCHAR(16)
team_member role enum('LEADER','MEMBER') VARCHAR(20)
recommendation type enum('SCHEDULED','MANUAL') VARCHAR(16)
member_recommendation email_send_status enum('PENDING','SENT','FAILED') VARCHAR(16)

2. Hibernate 자동 생성 unique constraint 이름 교체

  • UK_mbmcqelty0fbrvxp1q58dn57tuk_member_email
  • UK_q4jvd8lnevoqq74bkjcm3p6ubuk_member_provider_id

3. created_at / modified_at 타입 표준화

일부 테이블은 timestamp NULL, 일부는 datetime(6) NOT NULL 혼재 → 팀 내 표준 결정 후 통일

마이그레이션 파일

V2__schema_standardize.sql

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions