티스토리 뷰

반응형

 

✅ Prisma Schema 완전 정복 – schema.prisma의 모든 것

"Prisma에서 가장 중요한 파일은 단연 schema.prisma입니다."
데이터 모델링, 마이그레이션, Client 생성까지 모두 여기서 시작됩니다.


📁 Prisma Schema란?

schema.prisma 파일은 Prisma ORM의 핵심 설정 파일입니다.
여기에는 다음 3가지 블록이 포함됩니다:

  1. generator
  2. datasource
  3. model (또는 enum, type, view, composite type)

🔧 1. Generator 블록

Prisma가 어떤 코드를 생성할지 지정합니다.

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

항목 설명

provider Prisma Client를 생성할 도구 (기본값: JS)
output 생성된 클라이언트 파일 경로 (선택)

🔌 2. Datasource 블록

어떤 데이터베이스와 연결할지를 지정합니다.

datasource db {
  provider = "postgresql"  // 또는 mysql, sqlite, mongodb, cockroachdb 등
  url      = env("DATABASE_URL")
}

필드 설명

provider 사용하는 DB 종류
url 연결 URL (보통 .env에 설정)
relationMode 외래 키 사용 방식 (prisma 또는 foreignKeys) – PlanetScale 등에서 중요

🧱 3. Model 정의 블록

반응형

테이블(또는 컬렉션) 단위의 데이터 구조를 정의합니다.

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

어노테이션 기능

@id Primary Key
@default() 기본값 설정
@unique 유니크 제약조건
@relation() 관계형 설정 (외래 키)
@map() 실제 DB 컬럼명 매핑
@@map() 실제 테이블명 매핑
@@unique([a, b]) 복합 유니크 제약

🎨 기타 스키마 구성 요소

✅ Enum 정의

enum Role {
  USER
  ADMIN
  SUPERADMIN
}

✅ Embedded/Composite Type (MongoDB or preview)

type Address {
  street String
  city   String
}

🧠 실전 팁: schema.prisma 작성 전략

상황 전략

빠른 모델링 npx prisma db push로 DB 반영
협업 개발 prisma migrate dev로 Git 이력 관리
기존 DB 연동 prisma db pull로 자동 모델 생성
실시간 타입 동기화 npx prisma generate 반복 사용

✅ Prisma Schema 작동 흐름 요약

schema.prisma
   ↓
Prisma Migrate → DB 스키마 생성
   ↓
Prisma Generate → 타입 안전 Prisma Client 생성
   ↓
앱 코드에서 ORM처럼 사용 (prisma.user.findMany())

 

Prisma Schema 정의,Prisma schema.prisma 구조,Prisma 모델링 방법,Prisma 어노테이션 설명,Prisma Client 생성,Prisma DB 연결,Prisma 마이그레이션,타입 안전 ORM,Prisma enum 사용법,Prisma schema 예제


 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함
반응형