framework/Prisma

✅ Prisma + Turso 통합 가이드 – 엣지 컴퓨팅에 최적화된 SQLite와 타입 안전 ORM의 결합

octo54 2025. 5. 22. 15:41
반응형

 

✅ Prisma + Turso 통합 가이드 – 엣지 컴퓨팅에 최적화된 SQLite와 타입 안전 ORM의 결합

"Turso는 SQLite를 엣지로 확장한 서버리스 DB입니다. Prisma와 함께라면 로컬처럼 빠르고 클라우드처럼 유연합니다."
Next.js, Cloudflare, Vercel과 함께 최적의 엣지 풀스택 앱을 구축해보세요.


🎯 Prisma와 Turso: 왜 이 조합이 유용한가?

Prisma Turso

타입 안전 ORM SQLite 기반 서버리스 DB
자동완성 & 스키마 모델링 엣지 환경에 최적화
관계형 데이터 관리 PlanetScale과 유사한 분기 시스템 지원
빠른 prototyping 실시간 복제 기능으로 글로벌 확장 가능

📦 1. 프로젝트 세팅

mkdir prisma-turso && cd prisma-turso
npm init -y
npm install prisma @prisma/client

🔧 2. Turso DB 생성 및 설정

  1. https://turso.tech 가입
  2. CLI 설치:
curl -sSfL https://get.turso.io/install.sh | bash
  1. 로그인 및 DB 생성:
turso auth login
turso db create mydb
  1. 연결 정보 확인:
turso db show mydb
  1. .env 파일에 연결 주소 입력:
DATABASE_URL="file:./mydb.db"

⚠️ 현재 Prisma는 Turso를 SQLite-compatible DB로 인식하므로 provider = "sqlite"를 사용합니다.


📐 3. Prisma 설정

반응형
npx prisma init

prisma/schema.prisma:

generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "sqlite" // Turso는 SQLite 호환
  url      = env("DATABASE_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  name  String
  email String  @unique
}

🚀 4. Prisma Client 생성 및 스키마 푸시

npx prisma db push
npx prisma generate

✅ Turso는 PlanetScale처럼 migrate dev 대신 db push 사용이 적합합니다.


🛠 5. Prisma Client 사용 예제

src/prisma.ts:

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()
export default prisma

데이터 생성 및 조회:

const newUser = await prisma.user.create({
  data: {
    name: '훈창',
    email: 'hoon@example.com',
  },
})

const users = await prisma.user.findMany()
console.log(users)

🌍 Turso의 엣지 특징과 Prisma 연계 전략

기능 설명

엣지 위치 분산 사용자가 가까운 DB 복제본에서 읽기
읽기 전용 브랜치 생성 가능 실시간 글로벌 읽기 최적화
CLI 기반 분기/배포 관리 개발 → 운영 전환이 명확함
Next.js 등 엣지 플랫폼과 궁합 좋음 app/api에서 Prisma Client 직접 사용 가능

⚠️ 주의 사항

  • Prisma의 일부 고급 기능(예: JSONB, 트랜잭션)은 Turso에서 제한될 수 있음
  • db push는 개발용으로 적합하며, 운영 환경에서는 Turso의 분기/복제를 조심히 사용해야 함
  • PlanetScale처럼 foreign key는 지원되지 않음

✅ Prisma + Turso 조합이 적합한 케이스

  • 빠른 MVP 구축 시 (파일 기반 DB + 타입 안전 ORM)
  • Next.js 엣지 API 또는 Vercel Functions 기반 앱
  • 지리적으로 분산된 사용자 대상의 읽기 최적화
  • Serverless-first 애플리케이션

 

Prisma Turso 연동,Turso 서버리스 SQLite,Prisma SQLite 사용법,Next.js Prisma Turso,Edge DB ORM,타입 안전 SQLite,Prisma db push 사용법,Turso CLI 설정,엣지 컴퓨팅 DB,Turso Prisma Client 예제