피드로 돌아가기
Migrate a Prisma project to Postgres, MySQL, Mongo — or 10 other databases — with zero code change, using @mostajs/orm-cli
Dev.toDev.to
Database

Codemod 기반 Prisma 마이그레이션으로 13종 DB 무중단 전환 구현

Migrate a Prisma project to Postgres, MySQL, Mongo — or 10 other databases — with zero code change, using @mostajs/orm-cli

MADANI2026년 6월 3일4intermediate

Context

Prisma ORM 사용 시 스키마와 클라이언트가 특정 DB Provider에 종속되는 Vendor Lock-in 문제 발생. DB 전환 시 데이터 액세스 계층의 전체 코드를 재작성해야 하는 높은 리팩토링 비용과 리스크 존재.

Technical Solution

  • Codemod 기반의 자동 코드 변환을 통한 PrismaClient 인스턴스를 @mostajs/orm-bridgecreatePrismaLikeDb()로 대체
  • Prisma-compatible Interface 설계를 통해 기존 db.findMany() 등 쿼리 API를 그대로 유지하는 Runtime 호환성 확보
  • schema.prisma를 DB 독립적인 entities.json 포맷으로 변환하여 13종의 Dialect에 대응하는 추상화 레이어 구축
  • Dry-run 모드와 .prisma.bak 백업 파일 생성 및 --restore 옵션을 통한 멱등성(Idempotency) 및 롤백 메커니즘 구현
  • OpenAPI 및 JSON Schema를 ORM 어댑터로 연결하여 Prisma 외 다양한 명세서 기반의 스키마 생성 지원

1. Vendor Lock-in 방지를 위해 데이터 액세스 계층에 추상화 인터페이스 도입 검토

2. 대규모 코드 변경 시 자동화된 Codemod 도입 및 롤백 전략(Backup/Restore) 수립

3. DB 전환 시 스키마 정의서를 DB 독립적인 중간 포맷(JSON 등)으로 관리하여 이식성 향상

원문 읽기