Skip to content

feat: DatoCMS → Supabase + S3 마이그레이션#104

Merged
ryu9663 merged 6 commits intomainfrom
feat/migration
Jan 27, 2026
Merged

feat: DatoCMS → Supabase + S3 마이그레이션#104
ryu9663 merged 6 commits intomainfrom
feat/migration

Conversation

@ryu9663
Copy link
Copy Markdown
Owner

@ryu9663 ryu9663 commented Jan 26, 2026

Summary

  • DatoCMS에서 Supabase(PostgreSQL) + S3 + CloudFront 아키텍처로 마이그레이션
  • Feature Flag 기반 데이터 소스 전환 (DATA_SOURCE=supabase|datocms)
  • 기존 DatoCMS ID를 URL에 유지하여 Search Console 인덱싱 보존

주요 변경사항

  • 마이그레이션 스크립트: scripts/migration/ (5개 스크립트)
  • Supabase API 레이어: src/app/api/supabase/src/libs/supabase/
  • Feature Flag: src/config/dataSource.ts로 데이터 소스 전환
  • 타입 호환성: 기존 PostType 유지, datocmsId 필드 추가

Test plan

  • DATA_SOURCE=supabase pnpm dev로 로컬 테스트
  • 홈페이지 포스트 목록 확인
  • 개별 포스트 페이지 (/post/:datocmsId) 접근 확인
  • 이미지 로딩 및 blur placeholder 동작 확인
  • sitemap.xml 생성 확인
  • DATA_SOURCE=datocms로 롤백 테스트

🤖 Generated with Claude Code

ryu9663 and others added 6 commits January 26, 2026 22:25
- Supabase 클라이언트 및 타입 정의 추가
- Feature Flag 기반 API 전환 구조 (DATA_SOURCE 환경변수)
- 통합 API 인덱스로 import 경로 단일화 (@/app/api)
- 마이그레이션 스크립트 5개 생성 (extract, upload, blur, insert, verify)
- CloudFront 도메인 지원 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 04-insert-supabase.ts: 문자열 ID는 legacy_id를 NULL로 설정
- getPostById.ts: 숫자/UUID 형식에 따라 적절한 컬럼으로 조회
  - 숫자: legacy_id로 조회
  - UUID: id로 조회
  - 그 외: 에러 반환

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- PostType.id 타입을 number에서 string | number로 변경
- Supabase converter에서 UUID 직접 사용하도록 수정
- Card 컴포넌트의 id prop 타입 동기화
- 불필요한 타입 캐스팅 제거

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- legacy_id INTEGER → datocms_id VARCHAR 컬럼 변경
- DatoCMS ID(숫자/문자열)를 그대로 저장하여 Search Console URL 유지
- getPostById에서 datocms_id 우선 조회
- converter에서 datocms_id 우선 반환

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- PostType에 datocmsId 필드 추가
- Supabase converter에서 datocms_id 반환
- DatoCMS GraphQL에 datocmsId alias 추가
- Cards 컴포넌트에서 datocmsId로 URL 생성

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- getPostIds.ts: legacy_id → datocms_id로 변경하여 sitemap 생성 오류 수정
- 환경변수 NEXT_PUBLIC_SUPABASE_* → SUPABASE_*로 변경 (서버 전용)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Jan 26, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
blog Ready Ready Preview, Comment Jan 26, 2026 2:40pm

@ryu9663 ryu9663 merged commit ea63360 into main Jan 27, 2026
2 of 3 checks passed
@ryu9663 ryu9663 deleted the feat/migration branch January 27, 2026 11:08
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