Skip to content

fix: 미션 초기 데이터 자동 로드 (오늘의 미션 500 근본 원인 해결) - #26

Merged
hyeonszz merged 1 commit into
mainfrom
fix/seed-missions-auto-load
Jul 10, 2026
Merged

fix: 미션 초기 데이터 자동 로드 (오늘의 미션 500 근본 원인 해결)#26
hyeonszz merged 1 commit into
mainfrom
fix/seed-missions-auto-load

Conversation

@hyeonszz

@hyeonszz hyeonszz commented Jul 10, 2026

Copy link
Copy Markdown
Collaborator

PostgreSQL 은 spring.sql.init.mode 가 없으면 data.sql 을 실행하지 않는다. 그래서 배포 DB(RDS)의 mission 테이블이 비어 GET /api/missions/today 가 500(미션 데이터 없음)을 냈다.

  • spring.sql.init.mode=always 추가 (defer-datasource-initialization 은 이미 있음)
  • data.sql 을 확정된 30개 미션으로 교체, 삽입 후 시퀀스 setval
  • ON CONFLICT (id) DO NOTHING 이라 매 기동 실행돼도 중복/덮어쓰기 없음

검증: 빈 DB 로 bootRun 시 미션 30개 자동 적재 확인. clean build 통과. (테스트는 test 프로파일이라 data.sql 을 로드하지 않아 영향 없음)

Summary by CodeRabbit

  • 새 기능

    • 애플리케이션 시작 시 미션 초기 데이터가 자동으로 준비됩니다.
    • 최대 30개의 미션 샘플 데이터가 추가됩니다.
  • 버그 수정

    • 초기 데이터가 반복 실행되어도 중복 생성이나 기존 데이터 덮어쓰기가 발생하지 않습니다.
    • 미션 식별자 시퀀스를 동기화해 신규 미션 생성 시 충돌을 방지합니다.

PostgreSQL 은 spring.sql.init.mode 가 없으면 data.sql 을 실행하지 않는다.
그래서 배포 DB(RDS)의 mission 테이블이 비어 GET /api/missions/today 가
500(미션 데이터 없음)을 냈다.

- spring.sql.init.mode=always 추가 (defer-datasource-initialization 은 이미 있음)
- data.sql 을 확정된 30개 미션으로 교체, 삽입 후 시퀀스 setval
- ON CONFLICT (id) DO NOTHING 이라 매 기동 실행돼도 중복/덮어쓰기 없음

검증: 빈 DB 로 bootRun 시 미션 30개 자동 적재 확인. clean build 통과.
(테스트는 test 프로파일이라 data.sql 을 로드하지 않아 영향 없음)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@hyeonszz hyeonszz self-assigned this Jul 10, 2026
@coderabbitai

coderabbitai Bot commented Jul 10, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 970196e2-5bfc-4581-b64a-c3782a45864a

📥 Commits

Reviewing files that changed from the base of the PR and between df35c71 and aa60e08.

📒 Files selected for processing (2)
  • src/main/resources/application.yml
  • src/main/resources/data.sql

📝 Walkthrough

Walkthrough

Spring SQL 초기화를 매 기동 시 실행하도록 설정하고, 미션 초기 데이터를 대량 삽입 방식으로 확장했습니다. 중복 삽입을 방지하며, 미션 ID 시퀀스를 현재 최대 ID에 맞춥니다.

Changes

미션 초기화

Layer / File(s) Summary
SQL 초기화 실행 설정
src/main/resources/application.yml
Hibernate 테이블 생성 이후 data.sql이 매 기동 시 실행되도록 spring.sql.init.mode: always를 추가했습니다.
미션 시드 삽입 및 시퀀스 동기화
src/main/resources/data.sql
미션 1~30번 데이터를 단일 INSERT ... VALUES 문으로 삽입하고, ON CONFLICT DO NOTHING 및 현재 최대 ID 기반 시퀀스 동기화를 적용했습니다.

Estimated code review effort: 2 (Simple) | ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed 미션 초기 데이터 자동 로드와 관련된 핵심 변경을 명확히 요약한 제목입니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/seed-missions-auto-load

Comment @coderabbitai help to get the list of available commands.

@hyeonszz
hyeonszz merged commit 11f644f into main Jul 10, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant