[Hotfix] vision_summary_5s 테이블 DROP 복구#53
Merged
Conversation
운영 DB에서 vision_summary_5s 테이블이 DROP TABLE로 삭제됐다(전체 행 삭제를 의도했으나 테이블 자체를 지움). 운영은 ddl-auto=validate라 VisionSummary5s 엔티티가 매핑하는 이 테이블이 없으면 어떤 배포/재시작도 Hibernate 스키마 검증에서 즉시 실패한다 - 새 이미지든 롤백용 이전 이미지든 동일하게 실패하므로 cd.yml의 자동 롤백도 소용없고, 최악의 경우 서비스가 완전히 다운된다. V1__init_schema.sql의 원본 정의 + V4__vision_summary_dedup_key_drop_seq.sql의 변경사항(3컬럼 UNIQUE -> 2컬럼 UNIQUE)을 반영한 DROP 직전 최종 구조 그대로 재생성한다. 데이터는 복구하지 않는다(원래도 전체 삭제 의도였음). 실제 MySQL 8.0.46 컨테이너에서 인시던트를 그대로 재현해 검증했다: V1~V11 정상 적용 후 테이블을 실제로 DROP, flyway_schema_history가 V11을 최신으로 유지한 상태에서 V12를 적용 -> 마이그레이션 성공, Hibernate validate 통과, 앱 정상 기동까지 확인. SHOW CREATE TABLE로 컬럼/제약/인덱스가 DROP 이전과 동일함도 확인했다. 이 마이그레이션이 배포되기 전까지는 dev 기준 어떤 배포/재시작도 위험하다. 다른 PR(#52 등)보다 우선 병합·배포 필요. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
📝 WalkthroughWalkthroughV12 마이그레이션이 Changesvision_summary_5s 스키마 복구
Estimated code review effort: 1 (Trivial) | ~3 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
7 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚨 긴급 - 다른 무엇보다 먼저 병합/배포 필요
운영 DB에서
vision_summary_5s테이블이 실수로DROP TABLE됐습니다(전체 행 삭제를 의도했으나 테이블 자체를 삭제). 데이터 복구는 필요 없습니다 - 원래도 전체 삭제 의도였습니다.왜 긴급인가
운영은
ddl-auto: validate(application-prod.yml:19)입니다.VisionSummary5s엔티티가 매핑하는 테이블이 없으면 어떤 배포/재시작도 Hibernate 스키마 검증에서 즉시 실패합니다.cd.yml의 자동 롤백 로직(151~173줄)은 "이전 이미지 == 이전 DB 스키마"를 전제하는데, 지금은 새 이미지든 롤백 대상인 이전 이미지든 둘 다 이 이유로 기동 실패 - 최악의 경우 서비스가 완전히 다운된 채로 남습니다.즉, 이 마이그레이션이 배포되기 전까지는 dev 기준 어떤 배포도 위험합니다. PR #52 등 다른 PR보다 먼저 병합·배포해야 합니다.
조치 내용
V12__recreate_vision_summary_5s.sql-V1__init_schema.sql의 원본 정의에V4__vision_summary_dedup_key_drop_seq.sql의 변경사항(3컬럼 UNIQUE → 2컬럼 UNIQUE)까지 반영한, DROP 직전 최종 구조 그대로 재생성합니다.검증 방법
실제 MySQL 8.0.46 Docker 컨테이너(운영과 동일 버전)에서 인시던트를 그대로 재현했습니다:
flyway_schema_history기준 최신 버전과 동일)DROP TABLE vision_summary_5s수동 실행 (실제 인시던트 재현,flyway_schema_history는 V11을 최신으로 유지)validate통과, 앱 정상 기동(Started KlljsApplication) 확인SHOW CREATE TABLE로 컬럼/제약/인덱스가 DROP 이전과 완전히 동일함을 직접 확인 (PK,uk_vision_summary_media_timeUNIQUE(media_unit_id, event_time), FK 2개(ON DELETE RESTRICT/ON DELETE SET NULL), 나머지 인덱스 2개)배포 후 확인 필요
🤖 Generated with Claude Code
Summary by CodeRabbit
vision_summary_5s테이블의 스키마를 복원했습니다.