docs: Phase 6 완료 반영 (DB 마이그레이션)

This commit is contained in:
Claude-51124 2026-01-02 12:30:58 +09:00
parent 93b484a89c
commit 6241efde03
2 changed files with 13 additions and 5 deletions

View File

@ -3,7 +3,7 @@
**날짜**: 2026-01-02
**작성자**: happybell80
**관련 서비스**: rb8001
**상태**: 구현 완료 (Phase 1-5)
**상태**: 구현 완료 (Phase 1-6)
→ 상세: [troubleshooting/260102_db_scheduler_management.md](../../troubleshooting/260102_db_scheduler_management.md)
@ -36,15 +36,15 @@ CREATE TABLE IF NOT EXISTS scheduled_jobs (
| `naverworks_briefing` | `app.scheduler.jobs.naverworks_briefing._run_briefing_with_logging` | sync 래퍼 |
| `coldmail_briefing` | `app.scheduler.jobs.coldmail_briefing._run_coldmail_briefing_with_logging` | sync 래퍼 |
## 구현 완료 (Phase 1-5)
## 구현 완료 (Phase 1-6)
- Phase 1-2: `app/state/scheduler_repository.py` - CRUD 함수
- Phase 3: `app/scheduler/db_loader.py` - DB 로더
- Phase 4: `main.py:146-149` - DB 기반 로드로 전환
- Phase 5: `app/router/scheduler_endpoint.py` - API 엔드포인트
- Phase 6: `scripts/migrate_schedules_to_db.py` - 기존 데이터 마이그레이션 (4개 스케줄러)
## 미완료 (Phase 6-7)
## 미완료 (Phase 7)
- Phase 6: 기존 데이터 마이그레이션 스크립트
- Phase 7: Pydantic Settings 전환 (선택, 권장)

View File

@ -41,6 +41,12 @@
- `DELETE /api/scheduler/jobs/{name}`: 삭제
- `GET /api/scheduler/jobs`: 목록 조회
### Phase 6: 기존 데이터 마이그레이션
- `scripts/migrate_schedules_to_db.py`: 환경변수 기반 스케줄러를 DB로 마이그레이션
- 4개 스케줄러 마이그레이션: daily_diary, naverworks_daily, coldmail_daily, lunch_worldcup
- 실행: `python -m scripts.migrate_schedules_to_db`
- 서버 재시작 후 DB에서 3개 enabled 잡 정상 로드 확인
### 테스트 이슈 해결
- JSONB 파싱: `asyncpg`가 JSONB를 string으로 반환 → `json.loads()` 적용
- E2E 테스트 이벤트 루프 충돌: `pytest-asyncio``TestClient` 충돌
@ -48,8 +54,10 @@
## 구현 완료
- 커밋: `1e82dee` (2026-01-02)
- Phase 1-5 커밋: `1e82dee` (2026-01-02)
- Phase 6 커밋: `0d0a098` (2026-01-02)
- 테스트: 13개 모두 통과 (repository 5, loader 3, E2E 5)
- 마이그레이션: 4개 스케줄러 DB 삽입 완료, 서버 재시작 후 3개 enabled 잡 정상 로드
- 배포: Gitea Actions 자동 배포 완료
## 교훈