티스토리 뷰
반응형
✅ Prisma Schema 완전 정복 – schema.prisma의 모든 것
"Prisma에서 가장 중요한 파일은 단연 schema.prisma입니다."
데이터 모델링, 마이그레이션, Client 생성까지 모두 여기서 시작됩니다.
📁 Prisma Schema란?
schema.prisma 파일은 Prisma ORM의 핵심 설정 파일입니다.
여기에는 다음 3가지 블록이 포함됩니다:
- generator
- datasource
- 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 예제
'framework > Prisma' 카테고리의 다른 글
✅ Prisma generator 완벽 가이드 – Prisma Client 생성의 시작점 (0) | 2025.05.29 |
---|---|
✅ Prisma datasource 완전 정복 – 데이터베이스 연결 설정의 핵심 (0) | 2025.05.28 |
✅ Prisma는 ORM 그 이상이다 – 데이터 접근 레이어의 진화 (0) | 2025.05.26 |
✅ Prisma + Cloudflare D1 통합 가이드 – 엣지 서버리스 앱을 위한 초경량 DB 구성법 (0) | 2025.05.23 |
✅ Prisma + Turso 통합 가이드 – 엣지 컴퓨팅에 최적화된 SQLite와 타입 안전 ORM의 결합 (0) | 2025.05.22 |
※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 웹개발
- rag
- Prisma
- gatsbyjs
- JAX
- Ktor
- PostgreSQL
- 프론트엔드
- SEO최적화
- 프론트엔드면접
- 딥러닝
- AI챗봇
- Docker
- seo 최적화 10개
- 개발블로그
- kotlin
- 백엔드개발
- Python
- Next.js
- CI/CD
- llm
- fastapi
- nodejs
- Webpack
- NestJS
- REACT
- SEO 최적화
- 파이썬 알고리즘
- nextJS
- App Router
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함
반응형