Skip to content

docs(plans): SeaORM ↔ Supabase 마이그레이션 통합 epic 분해안 (#374)#380

Merged
thxforall merged 2 commits into
devfrom
feature/374-seaorm-integration-epic-plan
Apr 30, 2026
Merged

docs(plans): SeaORM ↔ Supabase 마이그레이션 통합 epic 분해안 (#374)#380
thxforall merged 2 commits into
devfrom
feature/374-seaorm-integration-epic-plan

Conversation

@thxforall
Copy link
Copy Markdown
Contributor

Summary

#374 epic 의 design spec 작성. 실행 PR 아님 — 분해안만 정의.

채택 방향: Option B (SeaORM 폐기 + Supabase CLI 단독화).

왜 Option B 인가

항목 A (두 시스템 동기) B (SeaORM 폐기, 채택)
변경 비용 (장기) 매 변경마다 두 곳 + idempotent 보장 한 곳만
drift 위험 사람이 보장 → 재발 (#372 사례) 단일 SOT → 구조적 차단
실행 비용 (1회) 62 SeaORM idempotent 화 + 검증 prod schema dump → baseline + SeaORM 제거

dev 는 이미 `SKIP_DB_MIGRATIONS=1` 로 Supabase 단일이고, prod 만 두 시스템 공존. 통합 = prod 만 dev 모델로 정렬하는 작업.

분해 — 4 Phase

Phase 1 (baseline)        Phase 2 (검증)            Phase 3 (cutover)         Phase 4 (cleanup)
─────────────────         ─────────────────         ─────────────────         ─────────────────
prod schema dump          dev clean DB +            prod 에서 SKIP=1 set      migration/ 삭제
→ supabase/migrations/    Supabase migrations →    → 다음 변경부터 단일 SOT  → main.rs Migrator 제거
   <ts>_baseline.sql      drift CI green 1주        → 마지막 SeaORM 적용      → SKIP_DB_MIGRATIONS env 제거
                                                    → release noted 으로 알림  → docs 재작성

각 Phase = sub-issue 1개 + PR 1개. 자세한 acceptance / risk 는 본 spec 문서 참조.

선결 조건

정량화 결과 (2026-04-30)

시스템 파일 수 비고
Supabase CLI 6 신규 SOT (2026-04-09 baseline 부터)
SeaORM Rust 62 그중 43 DDL, RawSql 0 → SeaORM-native, baseline 으로 대체 가능
SeaORM SQL 3 `006_indexes_and_constraints.sql` 가 #372 진원지

CI 의존

본 PR 의 `wiki:lint` 는 PR #375 의 frontmatter 정합 commit (`81aeabe5`) 에 의존 — `docs/superpowers/specs/2026-04-23-e2e-hardening-reprioritization-design.md` 의 기존 에러 때문. 본 PR 자체가 추가하는 lint 에러 0건. PR #375 머지되면 자동 해소.

Test plan

🤖 Generated with Claude Code

#374 epic 의 design spec — 본 PR 은 spec 작성만, 실행 X. 채택된 방향 +
sub-issue 4개 후보를 정의하며, 실행은 #373 (PR #378) 의 1주 0-error 검증
후 시작.

분석 결과:
- 현재 SeaORM 62개 vs Supabase CLI 6개 (RawSql 미사용 → SeaORM-native DDL)
- dev 는 SKIP_DB_MIGRATIONS=1 로 이미 Supabase 단일, prod 만 두 시스템 공존
- → Option B (SeaORM 폐기) 채택

Phase 분해:
1. baseline — prod schema dump → 1개 idempotent Supabase 마이그레이션
2. 검증 — drift CI 1주 0-error + 수동 dump diff
3. cutover — prod SKIP_DB_MIGRATIONS=1
4. cleanup — migration/ 디렉토리 + main.rs Migrator + env 제거

본 PR 의 wiki:lint 는 #375 의 frontmatter 정합 commit (81aeabe) 의존
(e2e-hardening-reprioritization-design.md 의 기존 에러). 본 PR 머지 후
e2e 파일 에러는 #375 머지로 해소됨.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 30, 2026

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

Project Deployment Actions Updated (UTC)
decoded-app Ready Ready Preview, Comment Apr 30, 2026 7:09am

@thxforall thxforall marked this pull request as ready for review April 30, 2026 07:10
@thxforall thxforall merged commit 6f1acc3 into dev Apr 30, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in decoded-monorepo Apr 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant