🧯 Prisma 관계(Relation) 에러 완전 해결 가이드 – 실무 트러블슈팅 모음"관계 정의했는데 마이그레이션이 안 돼요""왜 Prisma Client에서 join이 안 되죠?"→ 대부분은 작은 실수에서 시작됩니다.❗ 대표적인 에러 유형과 해결법1. Argument fields is missing in relation attribute.model Post { author User @relation(references: [id]) // ❌ fields 누락}✅ 해결법:model Post { authorId Int author User @relation(fields: [authorId], references: [id])}@relation을 사용할 때는 fields와 references를 ..
⚠️ Prisma Referential Actions – 반드시 알아야 할 특별 규칙들“Cascade 설정했는데 왜 삭제가 안 될까?”“SQLite에서 SetNull이 안 먹혀?”👉 referential action이 동작하지 않거나 에러가 나는 이유, Prisma 내부 규칙을 정확히 이해하면 해결됩니다.✅ 1. 관계에 @relation 명시 없이 동작 설정 불가model Post { author User? // ❌ 이렇게만 하면 referential action 적용 안 됨!}반드시 명시적으로 작성해야 적용됩니다:model Post { authorId Int? author User? @relation(fields: [authorId], references: [id], onDelete: ..
✅ Prisma Referential Actions 완전 가이드 – onDelete, onUpdate 사용법"부모가 삭제되었을 때 자식은 어떻게 해야 할까?""기본키가 변경되면 참조하고 있던 외래키는?"👉 이것이 바로 **참조 동작(Referential Actions)**의 영역입니다.🔍 Referential Actions란?데이터베이스에서 외래 키 관계가 있을 때 참조 대상이 변경되거나 삭제되는 경우하위 테이블에서 어떤 동작을 취할지를 정의하는 기능입니다.Prisma에서는 관계 정의 시 다음과 같이 설정합니다:@relation(fields: [...], references: [...], onDelete: ..., onUpdate: ...)🧱 사용 가능한 옵션 목록옵션 설명Cascade참조 대상이 ..
✅ Prisma Self-Relation 완전 가이드 – 자기 참조 관계 설정 방법“댓글에 댓글이 달리는 구조”, “사용자가 다른 사용자를 팔로우”이런 구조는 모두 Self-Relation, 즉 모델이 자기 자신과 관계를 맺는 구조입니다.Prisma에서도 이를 안전하게 정의하고 사용할 수 있습니다.🧩 Self-Relation이란?같은 모델끼리의 관계를 맺는 것대표적인 예시:계층적 구조 (ex: 카테고리, 댓글)유저 간 관계 (ex: 친구, 팔로우)📁 예제 1: 계층형 구조 (댓글 → 댓글)model Comment { id Int @id @default(autoincrement()) content String parentId Int? parent Comment?..
✅ Prisma N:M 관계 완벽 가이드 – 암시적 vs 명시적 Many-to-Many 모델링"게시글 하나에 여러 태그, 하나의 태그에 여러 게시글이 달릴 수 있다."이런 구조가 바로 Many-to-Many 관계입니다. Prisma에서는 이를 두 가지 방식으로 다룰 수 있습니다.🧩 1. Many-to-Many 관계란?두 테이블 간에 다대다(N:M) 연결이 필요한 경우예시:User ↔ RolePost ↔ TagStudent ↔ Course✨ 2. 암시적 관계 (Implicit)가장 간단하게 선언하는 방법입니다.중간 테이블이 자동 생성되며, 사용자 정의 필드가 필요 없을 때 적합합니다.model Post { id Int @id @default(autoincrement()) title Str..
✅ Prisma 1:N 관계 완전 가이드 – One-to-Many 관계 정석 모델링"하나의 User가 여러 개의 Post를 가질 수 있다."이런 구조를 Prisma에서 어떻게 안전하고 효율적으로 정의할 수 있을까요?🔎 1:N 관계란?한 개의 레코드가 여러 개의 레코드와 연결되는 관계대표 예:User 1명 ↔ Post 여러 개Category 1개 ↔ Product 여러 개🧱 기본 예제model User { id Int @id @default(autoincrement()) name String posts Post[]}model Post { id Int @id @default(autoincrement()) title String authorId Int aut..
✅ Prisma 1:1 관계 완전 정복 – One-to-One @relation 실전 가이드"1:1 관계를 제대로 설정하지 않으면 ORM은 물론 DB 자체가 꼬입니다."Prisma에서는 명확한 키워드와 구조로 안정적인 1:1 관계 설정이 가능합니다.🔎 1:1 관계란?한 테이블의 행(row)이 다른 테이블의 정확히 한 행과만 연결되는 관계.예: User 1명당 Profile 1개🧱 기본 예제model User { id Int @id @default(autoincrement()) email String @unique profile Profile?}model Profile { id Int @id @default(autoincrement()) bio St..
✅ Prisma 관계(Relation) 완벽 가이드 – @relation의 모든 것"관계형 데이터베이스에서 가장 중요한 건 '관계'입니다."Prisma는 이를 명확하고 타입 안전하게 모델링할 수 있도록 @relation 키워드를 제공합니다.🔗 1. 관계(Relation)란?Prisma에서는 @relation 어노테이션을 사용하여 모델 간의 외래 키 관계를 정의합니다.🧱 기본 용어 정리용어 설명@relation관계 선언fields외래 키로 사용하는 필드references참조할 대상 모델의 필드 (보통 PK)name명시적인 관계 이름 (선택 사항)onDelete / onUpdate관계 유지 시 동작 옵션 (CASCADE 등)1️⃣ One-to-One (1:1) 관계model User { id I..
✅ Prisma Model 완전 가이드 – model로 테이블을 정의하는 모든 방법"Prisma에서 모델을 정의하는 순간, 데이터베이스 스키마와 타입 안전한 코드는 자동으로 따라옵니다."ORM의 핵심이자 Prisma Client의 근간, 바로 model입니다.🧱 model이란?Prisma의 schema.prisma 파일 내에서 model은 데이터베이스의 테이블을 정의합니다.model User { id Int @id @default(autoincrement()) name String email String @unique}이 정의만으로 Prisma는:DB 테이블 생성 (Migration)타입 안전한 Prisma Client 생성자동완성 제공🔑 필드 정의 구성 요소각 필드는 다음 요소들로..
✅ schema.prisma 파일 위치 정리 – Prisma 설정의 출발점"Prisma를 쓴다면 반드시 존재하는 그 파일, schema.prisma. 이게 어디에 있어야 할까요?"단순 위치 이상의 의미를 가진 이 파일, 올바르게 배치하는 전략을 알려드립니다.📁 기본 위치: prisma/schema.prisma📦 my-app/├── prisma/│ └── schema.prisma├── node_modules/├── src/├── package.json└── ...Prisma CLI 명령어들은 기본적으로 ./prisma/schema.prisma 경로를 자동으로 탐색합니다.npx prisma init 실행 시 이 경로에 기본 스키마 파일이 생성됩니다.🧭 위치를 변경하고 싶다면?다음과 같이 CLI 명령..
- Total
- Today
- Yesterday
- seo 최적화 10개
- rag
- Prisma
- nodejs
- Next.js
- ai철학
- llm
- NestJS
- JAX
- 웹개발
- LangChain
- 쿠버네티스
- Express
- CI/CD
- Python
- Docker
- 생성형AI
- 백엔드개발
- kotlin
- 딥러닝
- flax
- fastapi
- nextJS
- node.js
- DevOps
- SEO최적화
- 개발블로그
- JWT
- REACT
- PostgreSQL
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
