Skip to content

refactor(web): migrate database access from TypeORM to Prisma - #186

Merged
yhaeul merged 36 commits into
developfrom
refactor/prisma-orm
Nov 9, 2026
Merged

yhaeul merged 36 commits into
developfrom
refactor/prisma-orm

Conversation

@yhaeul

@yhaeul yhaeul commented Oct 12, 2026 •

Copy link
Copy Markdown
Collaborator

작업 내용

  • Prisma 7.10.0 설정, 27개 테이블 모델, 0_init baseline을 추가했습니다.
  • 인증·사용자·동아리·검색·리뷰·모집공고·관리자 기능의 DB 접근을 Prisma Client로 전환했습니다.
  • BIGINT·날짜·JSON 응답 변환과 DB 제약 오류 처리를 정리했습니다.
  • 사용하지 않는 TypeORM 엔티티·연결 코드·의존성을 제거했습니다.
  • CI와 웹 빌드에 Prisma Client 생성 단계를 추가했습니다.
  • prod 배포 시 웹 이미지의 Prisma 마이그레이션 Job이 Argo CD PreSync 단계에서 실행되도록 워크플로를 추가했습니다.
  • 웹 관련 PR에서 ARM64 이미지를 빌드하고 이미지 내부의 prisma validate를 실행하도록 검사를 추가했습니다.

변경 이유

  • web 서버의 DB 접근을 Prisma로 통일하고, 이후 스키마 변경을 Prisma migration으로 관리하기 위해서입니다.
  • apps/web/sql의 변경사항은 dev·prod DB의 최종 상태에 모두 반영되어 있습니다. 261011은 dev를 이미 해당 구조였던 prod에 맞추기 위해 dev에서만 실행했습니다.
  • 두 DB의 구조를 대조한 뒤 0_init 적용 이력을 등록했습니다. 배포 시 기존 테이블에 baseline 생성 SQL을 다시 실행하지 않습니다.
  • 이후 배포에서는 서비스 코드 반영 전에 미적용 Prisma migration을 실행하도록 했습니다.
  • apps/web/sql은 과거 변경 이력과 통합 테스트용으로 보관합니다.

테스트한 내용

  • 웹 타입 검사 및 테스트 220개 통과
  • PostgreSQL 통합 테스트 통과: 관리자 이전 A → B → A, 실패 시 롤백, 활성 관리자 중복 방지
  • dev·prod에서 Prisma migration 상태 확인
  • 웹 빌드 통과
  • 공개 API와 관리자 로그인·조회 확인
  • 실기기 앱 설치 후 로컬 서버 연결 확인
  • 로컬 Docker 이미지 빌드 및 이미지 내부 prisma validate 통과
  • 격리된 임시 PostgreSQL에 0_init 적용 후 재실행 시 미적용 migration이 없음을 확인
  • PR의 ARM64 웹 이미지 빌드 및 Prisma 검증 워크플로 통과

스크린샷 (선택)

체크

  • 정상 동작 확인
  • UI 깨짐 없음
  • 콘솔 에러 없음

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

yhaeul added 30 commits October 4, 2026 00:32
@yhaeul
yhaeul force-pushed the refactor/prisma-orm branch from 6363f60 to 1c70c22 Compare October 12, 2026 08:36
@yhaeul
yhaeul merged commit 94f40d7 into develop Nov 9, 2026
5 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