[BE-21] posts 테이블 확장 마이그레이션 (community_id·sport_category·global_listed)
작업 내용 (설계 의도)
변경 사항
근거 TDD: 20260707-post-community-연동-tdd.md ERD / Release Scenario 1.
posts 테이블에 3컬럼을 추가한다(FK 없음, private-db-schema-convention 준수). senior-dba가 인덱스를 쿼리 근거로 확정하고 private-mysql-implementer가 Flyway로 작성한다.
community_id BIGINT NULL— 모임 소프트참조(NULL=전역, FR-1)sport_category VARCHAR(30) NULL— 종목 분류(ENUM 금지→VARCHAR, FR-5)global_listed TINYINT(1) NOT NULL DEFAULT 1— 전역 피드 노출(BOOLEAN 금지→TINYINT). 기존 행=전역=1 정상값이라 단일 마이그레이션 안전- 인덱스 후보:
(sport_category, deleted_at),(community_id, deleted_at),(global_listed, deleted_at)—ALGORITHM=INPLACE, LOCK=NONE. 실제 채택은 senior-dba design-db 쿼리 매핑 근거.
롤백
역방향 DDL로 3컬럼·인덱스 DROP (코드 미배포 상태에서 실행 → 안전, expand-contract 1단계).
의존
- 없음 (선행 wave 단독)
다이어그램
클래스 의존
flowchart LR mig[V56 마이그레이션] --> posts[(posts)] posts -->|community_id| ref[community soft ref] posts -->|sport_category| sc[종목 필터] posts -->|global_listed| feed[전역 피드]
테스트 케이스
- 마이그레이션이 로컬 MySQL 8.0에서 exit 0으로 적용된다(기존 V9·V10 이후 순서)
- 기존 posts 행이 마이그레이션 후 community_id=NULL, sport_category=NULL, global_listed=1을 갖는다
- 신규 컬럼이 nullable/타입/COMMENT 규칙을 만족한다(TINYINT·VARCHAR, FK 없음)
- 역방향 DDL로 3컬럼 DROP 시 오류 없이 복구된다