@kood/claude-code 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/index.js +21 -243
  2. package/package.json +1 -1
  3. package/templates/hono/CLAUDE.md +10 -6
  4. package/templates/hono/docs/deployment/index.md +5 -0
  5. package/templates/hono/docs/library/hono/index.md +6 -0
  6. package/templates/hono/docs/library/prisma/index.md +3 -0
  7. package/templates/npx/CLAUDE.md +8 -2
  8. package/templates/tanstack-start/CLAUDE.md +103 -255
  9. package/templates/tanstack-start/docs/deployment/cloudflare.md +37 -424
  10. package/templates/tanstack-start/docs/deployment/index.md +57 -286
  11. package/templates/tanstack-start/docs/deployment/nitro.md +36 -318
  12. package/templates/tanstack-start/docs/deployment/railway.md +40 -409
  13. package/templates/tanstack-start/docs/deployment/vercel.md +43 -465
  14. package/templates/tanstack-start/docs/design/accessibility.md +56 -326
  15. package/templates/tanstack-start/docs/design/color.md +37 -179
  16. package/templates/tanstack-start/docs/design/components.md +77 -311
  17. package/templates/tanstack-start/docs/design/index.md +24 -87
  18. package/templates/tanstack-start/docs/design/safe-area.md +51 -250
  19. package/templates/tanstack-start/docs/design/spacing.md +57 -276
  20. package/templates/tanstack-start/docs/design/tailwind-setup.md +45 -359
  21. package/templates/tanstack-start/docs/design/typography.md +40 -284
  22. package/templates/tanstack-start/docs/library/better-auth/2fa.md +27 -115
  23. package/templates/tanstack-start/docs/library/better-auth/advanced.md +22 -105
  24. package/templates/tanstack-start/docs/library/better-auth/index.md +17 -66
  25. package/templates/tanstack-start/docs/library/better-auth/plugins.md +11 -88
  26. package/templates/tanstack-start/docs/library/better-auth/session.md +12 -92
  27. package/templates/tanstack-start/docs/library/better-auth/setup.md +9 -91
  28. package/templates/tanstack-start/docs/library/prisma/cloudflare-d1.md +30 -358
  29. package/templates/tanstack-start/docs/library/prisma/config.md +27 -327
  30. package/templates/tanstack-start/docs/library/prisma/crud.md +46 -174
  31. package/templates/tanstack-start/docs/library/prisma/index.md +23 -113
  32. package/templates/tanstack-start/docs/library/prisma/relations.md +31 -153
  33. package/templates/tanstack-start/docs/library/prisma/schema.md +40 -217
  34. package/templates/tanstack-start/docs/library/prisma/setup.md +12 -112
  35. package/templates/tanstack-start/docs/library/prisma/transactions.md +20 -110
  36. package/templates/tanstack-start/docs/library/tanstack-query/index.md +12 -99
  37. package/templates/tanstack-start/docs/library/tanstack-query/invalidation.md +28 -107
  38. package/templates/tanstack-start/docs/library/tanstack-query/optimistic-updates.md +44 -146
  39. package/templates/tanstack-start/docs/library/tanstack-query/setup.md +11 -70
  40. package/templates/tanstack-start/docs/library/tanstack-query/use-mutation.md +33 -127
  41. package/templates/tanstack-start/docs/library/tanstack-query/use-query.md +49 -149
  42. package/templates/tanstack-start/docs/library/tanstack-start/auth-patterns.md +19 -112
  43. package/templates/tanstack-start/docs/library/tanstack-start/index.md +33 -80
  44. package/templates/tanstack-start/docs/library/tanstack-start/middleware.md +28 -106
  45. package/templates/tanstack-start/docs/library/tanstack-start/routing.md +21 -118
  46. package/templates/tanstack-start/docs/library/tanstack-start/server-functions.md +34 -246
  47. package/templates/tanstack-start/docs/library/tanstack-start/setup.md +6 -39
  48. package/templates/tanstack-start/docs/library/zod/basic-types.md +33 -145
  49. package/templates/tanstack-start/docs/library/zod/complex-types.md +32 -156
  50. package/templates/tanstack-start/docs/library/zod/index.md +22 -150
  51. package/templates/tanstack-start/docs/library/zod/transforms.md +20 -129
  52. package/templates/tanstack-start/docs/library/zod/validation.md +39 -155
  53. package/templates/hono/docs/commands/git.md +0 -145
  54. package/templates/hono/docs/mcp/context7.md +0 -106
  55. package/templates/hono/docs/mcp/index.md +0 -176
  56. package/templates/hono/docs/mcp/sequential-thinking.md +0 -101
  57. package/templates/hono/docs/mcp/serena.md +0 -269
  58. package/templates/hono/docs/mcp/sgrep.md +0 -105
  59. package/templates/hono/docs/skills/gemini-review/SKILL.md +0 -220
  60. package/templates/hono/docs/skills/gemini-review/references/checklists.md +0 -136
  61. package/templates/hono/docs/skills/gemini-review/references/prompt-templates.md +0 -303
  62. package/templates/npx/docs/commands/git.md +0 -145
  63. package/templates/npx/docs/mcp/index.md +0 -60
  64. package/templates/npx/docs/skills/gemini-review/SKILL.md +0 -220
  65. package/templates/npx/docs/skills/gemini-review/references/checklists.md +0 -134
  66. package/templates/npx/docs/skills/gemini-review/references/prompt-templates.md +0 -301
  67. package/templates/tanstack-start/docs/commands/git.md +0 -145
  68. package/templates/tanstack-start/docs/mcp/context7.md +0 -204
  69. package/templates/tanstack-start/docs/mcp/index.md +0 -177
  70. package/templates/tanstack-start/docs/mcp/sequential-thinking.md +0 -180
  71. package/templates/tanstack-start/docs/mcp/serena.md +0 -269
  72. package/templates/tanstack-start/docs/mcp/sgrep.md +0 -174
  73. package/templates/tanstack-start/docs/skills/gemini-review/SKILL.md +0 -220
  74. package/templates/tanstack-start/docs/skills/gemini-review/references/checklists.md +0 -144
  75. package/templates/tanstack-start/docs/skills/gemini-review/references/prompt-templates.md +0 -292
@@ -1,235 +1,65 @@
1
- # Prisma - Config 파일 (prisma.config.ts)
1
+ # Prisma - Config 파일
2
2
 
3
- > **상위 문서**: [Prisma](./index.md)
3
+ Prisma v7 `prisma.config.ts` 설정.
4
4
 
5
- Prisma v7에서 도입된 `prisma.config.ts` 설정 파일입니다.
6
-
7
- ---
8
-
9
- ## ⚠️ 필수: Multi-File 스키마 설정
10
-
11
- Multi-File 스키마를 사용하려면 **반드시** `prisma.config.ts`에서 스키마 폴더를 지정해야 합니다.
12
-
13
- ```typescript
14
- // prisma.config.ts
15
- import path from 'node:path'
16
- import { defineConfig, env } from 'prisma/config'
17
-
18
- export default defineConfig({
19
- // Multi-File 스키마 폴더 지정
20
- schema: path.join('prisma', 'schema'),
21
- datasource: {
22
- url: env('DATABASE_URL'),
23
- },
24
- })
25
- ```
26
-
27
- ---
28
-
29
- ## 파일 위치 및 이름
30
-
31
- ### 지원되는 파일명
32
-
33
- ```
34
- prisma.config.ts # 권장 (소규모 프로젝트)
35
- prisma.config.js
36
- prisma.config.mjs
37
- prisma.config.cjs
38
- prisma.config.mts
39
- prisma.config.cts
40
-
41
- .config/prisma.ts # 권장 (대규모 프로젝트)
42
- .config/prisma.js
43
- ```
44
-
45
- ### 권장 위치
46
-
47
- ```
48
- 프로젝트/
49
- ├── prisma.config.ts # 프로젝트 루트
50
- ├── prisma/
51
- │ ├── schema/ # Multi-File 스키마 폴더
52
- │ │ ├── +base.prisma
53
- │ │ ├── +enum.prisma
54
- │ │ └── user.prisma
55
- │ └── migrations/ # 마이그레이션 폴더
56
- └── package.json
57
- ```
58
-
59
- ---
60
-
61
- ## 설정 옵션
62
-
63
- ### 전체 옵션 목록
64
-
65
- | 옵션 | 타입 | 필수 | 설명 |
66
- |------|------|------|------|
67
- | `schema` | string | ❌ | 스키마 파일 또는 폴더 경로 |
68
- | `datasource.url` | string | ✅ | 데이터베이스 연결 URL |
69
- | `datasource.shadowDatabaseUrl` | string | ❌ | Shadow DB URL |
70
- | `migrations.path` | string | ❌ | 마이그레이션 폴더 경로 |
71
- | `migrations.seed` | string | ❌ | 시드 스크립트 명령어 |
72
- | `migrations.initShadowDb` | string | ❌ | Shadow DB 초기화 SQL |
73
- | `views.path` | string | ❌ | SQL 뷰 정의 폴더 |
74
- | `typedSql.path` | string | ❌ | TypedSQL 파일 폴더 |
75
- | `experimental` | object | ❌ | 실험적 기능 활성화 |
76
-
77
- ---
78
-
79
- ## 기본 설정 예시
80
-
81
- ### defineConfig 사용 (권장)
5
+ ## Multi-File 스키마 (필수)
82
6
 
83
7
  ```typescript
84
8
  // prisma.config.ts
85
9
  import 'dotenv/config'
10
+ import path from 'node:path'
86
11
  import { defineConfig, env } from 'prisma/config'
87
12
 
88
13
  export default defineConfig({
89
- // Multi-File 스키마 설정
90
- schema: 'prisma/schema',
91
-
92
- // 마이그레이션 설정
14
+ schema: path.join('prisma', 'schema'), // 폴더 경로!
93
15
  migrations: {
94
16
  path: 'prisma/migrations',
95
17
  seed: 'tsx prisma/seed.ts',
96
18
  },
97
-
98
- // 데이터베이스 연결
99
19
  datasource: {
100
20
  url: env('DATABASE_URL'),
101
21
  },
102
22
  })
103
23
  ```
104
24
 
105
- ### satisfies 사용
25
+ ## 폴더 구조
106
26
 
107
- ```typescript
108
- // prisma.config.ts
109
- import 'dotenv/config'
110
- import type { PrismaConfig } from 'prisma'
111
- import { env } from 'prisma/config'
112
-
113
- export default {
114
- schema: 'prisma/schema',
115
- migrations: {
116
- path: 'prisma/migrations',
117
- seed: 'tsx prisma/seed.ts',
118
- },
119
- datasource: {
120
- url: env('DATABASE_URL'),
121
- },
122
- } satisfies PrismaConfig
123
27
  ```
124
-
125
- ---
126
-
127
- ## Multi-File 스키마 설정
128
-
129
- ### 필수 설정
130
-
131
- ```typescript
132
- // prisma.config.ts
133
- import path from 'node:path'
134
- import { defineConfig, env } from 'prisma/config'
135
-
136
- export default defineConfig({
137
- // ⚠️ 폴더 경로 지정 (파일이 아님!)
138
- schema: path.join('prisma', 'schema'),
139
- datasource: {
140
- url: env('DATABASE_URL'),
141
- },
142
- })
143
- ```
144
-
145
- ### 폴더 구조
146
-
147
- ```
148
- prisma/
149
- ├── schema/ # Multi-File 스키마 폴더
150
- │ ├── +base.prisma # datasource, generator 설정
151
- │ ├── +enum.prisma # 모든 enum 정의
152
- │ ├── user.prisma # User 모델
153
- │ ├── post.prisma # Post 모델
154
- │ └── ...
155
- └── migrations/ # ⚠️ datasource와 같은 레벨에 위치
28
+ 프로젝트/
29
+ ├── prisma.config.ts
30
+ ├── prisma/
31
+ │ ├── schema/
32
+ │ │ ├── +base.prisma # datasource, generator
33
+ │ │ ├── +enum.prisma # enum 정의
34
+ │ │ └── user.prisma # 모델
35
+ │ └── migrations/
156
36
  ```
157
37
 
158
- ### +base.prisma 예시
38
+ ## +base.prisma
159
39
 
160
40
  ```prisma
161
- // prisma/schema/+base.prisma
162
- // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
163
- // Prisma 기본 설정 파일
164
- // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
165
-
166
- // 데이터베이스 연결 설정
167
41
  datasource db {
168
42
  provider = "postgresql"
169
43
  url = env("DATABASE_URL")
170
44
  }
171
45
 
172
- // Prisma Client 생성 설정
173
46
  generator client {
174
- provider = "prisma-client" // Prisma v7 필수
47
+ provider = "prisma-client"
175
48
  output = "../../generated/prisma"
176
49
  }
177
50
  ```
178
51
 
179
- ---
180
-
181
- ## 환경 변수 설정
182
-
183
- ### dotenv 설치
184
-
185
- ```bash
186
- npm install dotenv
187
- ```
188
-
189
- ### 환경 변수 사용
190
-
191
- ```typescript
192
- // prisma.config.ts
193
- import 'dotenv/config' // ⚠️ 반드시 최상단에 import
194
- import { defineConfig, env } from 'prisma/config'
195
-
196
- export default defineConfig({
197
- schema: 'prisma/schema',
198
- datasource: {
199
- url: env('DATABASE_URL'), // 타입 안전한 환경 변수 접근
200
- },
201
- })
202
- ```
203
-
204
- ### .env 파일
205
-
206
- ```env
207
- DATABASE_URL="postgresql://user:password@localhost:5432/mydb"
208
- ```
209
-
210
- ---
211
-
212
- ## 마이그레이션 설정
52
+ ## 설정 옵션
213
53
 
214
- ### 시드 스크립트
54
+ | 옵션 | 설명 |
55
+ |------|------|
56
+ | `schema` | 스키마 폴더 경로 |
57
+ | `datasource.url` | DB URL (필수) |
58
+ | `datasource.shadowDatabaseUrl` | Shadow DB URL |
59
+ | `migrations.path` | 마이그레이션 폴더 |
60
+ | `migrations.seed` | 시드 명령어 |
215
61
 
216
- ```typescript
217
- // prisma.config.ts
218
- import { defineConfig, env } from 'prisma/config'
219
-
220
- export default defineConfig({
221
- schema: 'prisma/schema',
222
- migrations: {
223
- path: 'prisma/migrations',
224
- seed: 'tsx prisma/seed.ts', // 시드 명령어
225
- },
226
- datasource: {
227
- url: env('DATABASE_URL'),
228
- },
229
- })
230
- ```
231
-
232
- ### 시드 파일 예시
62
+ ## 시드 파일
233
63
 
234
64
  ```typescript
235
65
  // prisma/seed.ts
@@ -238,140 +68,10 @@ import { PrismaClient } from '../generated/prisma'
238
68
  const prisma = new PrismaClient()
239
69
 
240
70
  async function main() {
241
- // 초기 데이터 생성
242
71
  await prisma.user.create({
243
- data: {
244
- email: 'admin@example.com',
245
- name: '관리자',
246
- role: 'ADMIN',
247
- },
72
+ data: { email: 'admin@example.com', name: '관리자', role: 'ADMIN' },
248
73
  })
249
74
  }
250
75
 
251
- main()
252
- .catch(console.error)
253
- .finally(() => prisma.$disconnect())
254
- ```
255
-
256
- ---
257
-
258
- ## Shadow Database 설정
259
-
260
- 마이그레이션 시 사용되는 임시 데이터베이스입니다.
261
-
262
- ```typescript
263
- // prisma.config.ts
264
- import { defineConfig, env } from 'prisma/config'
265
-
266
- export default defineConfig({
267
- schema: 'prisma/schema',
268
- datasource: {
269
- url: env('DATABASE_URL'),
270
- shadowDatabaseUrl: env('SHADOW_DATABASE_URL'),
271
- },
272
- })
76
+ main().catch(console.error).finally(() => prisma.$disconnect())
273
77
  ```
274
-
275
- ---
276
-
277
- ## 실험적 기능
278
-
279
- ### External Tables
280
-
281
- 외부에서 관리되는 테이블 설정:
282
-
283
- ```typescript
284
- // prisma.config.ts
285
- import { defineConfig, env } from 'prisma/config'
286
-
287
- export default defineConfig({
288
- schema: 'prisma/schema',
289
- experimental: {
290
- externalTables: true,
291
- },
292
- tables: {
293
- external: ['public.users'],
294
- },
295
- enums: {
296
- external: ['public.role'],
297
- },
298
- datasource: {
299
- url: env('DATABASE_URL'),
300
- },
301
- })
302
- ```
303
-
304
- ---
305
-
306
- ## 경로 해석 규칙
307
-
308
- ### 중요 사항
309
-
310
- - 모든 경로는 **config 파일 위치 기준**으로 해석됩니다
311
- - CLI 명령어 실행 위치가 아닙니다!
312
-
313
- ### 예시
314
-
315
- ```
316
- 프로젝트/
317
- ├── prisma.config.ts # 여기가 기준!
318
- ├── prisma/
319
- │ └── schema/
320
- └── src/
321
- ```
322
-
323
- ```typescript
324
- // prisma.config.ts
325
- export default defineConfig({
326
- // ✅ prisma.config.ts 기준 상대 경로
327
- schema: 'prisma/schema',
328
-
329
- // ❌ 이렇게 하지 마세요
330
- schema: './prisma/schema', // ./ 불필요
331
- })
332
- ```
333
-
334
- ### 커스텀 경로 지정
335
-
336
- ```bash
337
- # --config 플래그로 config 파일 위치 지정
338
- npx prisma validate --config ./path/to/myconfig.ts
339
- ```
340
-
341
- ---
342
-
343
- ## 전체 설정 예시
344
-
345
- ```typescript
346
- // prisma.config.ts
347
- // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
348
- // Prisma v7 설정 파일
349
- // Multi-File 스키마 및 마이그레이션 설정
350
- // ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
351
- import 'dotenv/config'
352
- import path from 'node:path'
353
- import { defineConfig, env } from 'prisma/config'
354
-
355
- export default defineConfig({
356
- // Multi-File 스키마 폴더
357
- schema: path.join('prisma', 'schema'),
358
-
359
- // 마이그레이션 설정
360
- migrations: {
361
- path: 'prisma/migrations',
362
- seed: 'tsx prisma/seed.ts',
363
- },
364
-
365
- // 데이터베이스 연결
366
- datasource: {
367
- url: env('DATABASE_URL'),
368
- },
369
- })
370
- ```
371
-
372
- ---
373
-
374
- ## 관련 문서
375
-
376
- - [스키마 정의 (Multi-File)](./schema.md)
377
- - [설치 및 설정](./setup.md)
@@ -1,218 +1,90 @@
1
1
  # Prisma - CRUD 작업
2
2
 
3
- > **상위 문서**: [Prisma](./index.md)
4
-
5
- ## Create (생성)
6
-
7
- ### 단일 레코드 생성
3
+ ## Create
8
4
 
9
5
  ```typescript
6
+ // 단일
10
7
  const user = await prisma.user.create({
11
- data: {
12
- email: 'alice@prisma.io',
13
- name: 'Alice',
14
- },
8
+ data: { email: 'alice@prisma.io', name: 'Alice' },
15
9
  })
16
- ```
17
-
18
- ### 관계 포함 생성
19
10
 
20
- ```typescript
21
- const userWithPosts = await prisma.user.create({
11
+ // 관계 포함
12
+ const user = await prisma.user.create({
22
13
  data: {
23
14
  email: 'bob@prisma.io',
24
- name: 'Bob',
25
- posts: {
26
- create: [
27
- { title: 'Hello World' },
28
- { title: 'My Second Post' },
29
- ],
30
- },
31
- },
32
- include: {
33
- posts: true,
15
+ posts: { create: [{ title: 'Hello' }, { title: 'World' }] },
34
16
  },
17
+ include: { posts: true },
35
18
  })
36
- ```
37
-
38
- ### connectOrCreate로 깊은 중첩 생성
39
19
 
40
- ```typescript
41
- const user = await prisma.user.create({
42
- include: {
43
- posts: {
44
- include: {
45
- categories: true,
46
- },
47
- },
48
- },
49
- data: {
50
- email: 'emma@prisma.io',
51
- posts: {
52
- create: [
53
- {
54
- title: 'My first post',
55
- categories: {
56
- connectOrCreate: [
57
- {
58
- create: { name: 'Introductions' },
59
- where: { name: 'Introductions' },
60
- },
61
- {
62
- create: { name: 'Social' },
63
- where: { name: 'Social' },
64
- },
65
- ],
66
- },
67
- },
68
- ],
69
- },
70
- },
71
- })
20
+ // connectOrCreate
21
+ posts: { create: [{
22
+ title: 'Post',
23
+ categories: { connectOrCreate: [{ create: { name: 'Tech' }, where: { name: 'Tech' } }] },
24
+ }]}
72
25
  ```
73
26
 
74
- ## Read (조회)
75
-
76
- ### 단일 레코드 조회
27
+ ## Read
77
28
 
78
29
  ```typescript
79
- const user = await prisma.user.findUnique({
80
- where: { email: 'alice@prisma.io' },
81
- })
82
- ```
30
+ // 단일
31
+ const user = await prisma.user.findUnique({ where: { email } })
83
32
 
84
- ### 필터링된 다중 레코드 조회
33
+ // 다중
34
+ const users = await prisma.user.findMany({ where: { name: 'Alice' } })
85
35
 
86
- ```typescript
87
- const users = await prisma.user.findMany({
88
- where: { name: 'Alice' },
89
- })
90
- ```
91
-
92
- ### 관계 포함 조회
36
+ // 관계 포함
37
+ const users = await prisma.user.findMany({ where: { role: 'ADMIN' }, include: { posts: true } })
93
38
 
94
- ```typescript
95
- const users = await prisma.user.findMany({
96
- where: { role: 'ADMIN' },
97
- include: { posts: true },
98
- })
99
- ```
100
-
101
- ### 특정 필드만 선택
102
-
103
- ```typescript
39
+ // 필드 선택
104
40
  const user = await prisma.user.findUnique({
105
- where: { email: 'emma@prisma.io' },
106
- select: {
107
- email: true,
108
- posts: {
109
- select: { likes: true },
110
- },
111
- },
41
+ where: { email },
42
+ select: { email: true, posts: { select: { title: true } } },
112
43
  })
113
- ```
114
-
115
- ### 관계 필드로 필터링
116
44
 
117
- ```typescript
45
+ // 관계로 필터
118
46
  const users = await prisma.user.findMany({
119
- where: {
120
- email: { endsWith: 'prisma.io' },
121
- posts: {
122
- some: { published: false },
123
- },
124
- },
47
+ where: { posts: { some: { published: false } } },
125
48
  })
126
49
  ```
127
50
 
128
- ## Update (수정)
129
-
130
- ### 단일 레코드 수정
51
+ ## Update
131
52
 
132
53
  ```typescript
133
- const user = await prisma.user.update({
134
- where: { email: 'alice@prisma.io' },
135
- data: { name: 'Alice Updated' },
136
- })
137
- ```
54
+ // 단일
55
+ const user = await prisma.user.update({ where: { id }, data: { name: 'Updated' } })
138
56
 
139
- ### 다중 레코드 수정
57
+ // 다중
58
+ await prisma.user.updateMany({ where: { role: 'USER' }, data: { role: 'ADMIN' } })
140
59
 
141
- ```typescript
142
- const updatedUsers = await prisma.user.updateMany({
143
- where: { role: 'USER' },
144
- data: { role: 'ADMIN' },
145
- })
146
- ```
147
-
148
- ### Upsert (있으면 수정, 없으면 생성)
149
-
150
- ```typescript
60
+ // Upsert
151
61
  const user = await prisma.user.upsert({
152
- where: { email: 'alice@prisma.io' },
153
- update: { name: 'Alice Updated' },
154
- create: { email: 'alice@prisma.io', name: 'Alice' },
62
+ where: { email },
63
+ update: { name: 'Updated' },
64
+ create: { email, name: 'New' },
155
65
  })
156
66
  ```
157
67
 
158
- ## Delete (삭제)
159
-
160
- ### 단일 레코드 삭제
68
+ ## Delete
161
69
 
162
70
  ```typescript
163
- const deletedUser = await prisma.user.delete({
164
- where: { email: 'alice@prisma.io' },
165
- })
71
+ await prisma.user.delete({ where: { id } })
72
+ await prisma.user.deleteMany({}) // 전체
73
+ await prisma.post.deleteMany({ where: { published: false } }) // 조건부
166
74
  ```
167
75
 
168
- ### 모든 레코드 삭제
76
+ ## 필터 연산자
169
77
 
170
78
  ```typescript
171
- const deleteUsers = await prisma.user.deleteMany({})
172
- ```
79
+ // 문자열
80
+ { contains: 'prisma', startsWith: 'A', endsWith: 'io' }
173
81
 
174
- ### 조건부 삭제
82
+ // 숫자
83
+ { gt: 18, gte: 18, lt: 65, lte: 65 }
175
84
 
176
- ```typescript
177
- const deletedPosts = await prisma.post.deleteMany({
178
- where: { published: false },
179
- })
180
- ```
85
+ // 배열
86
+ { in: [1, 2, 3], notIn: [4, 5] }
181
87
 
182
- ## 필터 연산자
183
-
184
- ```typescript
185
- // 문자열 필터
186
- where: {
187
- email: { contains: 'prisma' },
188
- name: { startsWith: 'A' },
189
- title: { endsWith: 'guide' },
190
- }
191
-
192
- // 숫자 필터
193
- where: {
194
- age: { gt: 18 }, // greater than
195
- age: { gte: 18 }, // greater than or equal
196
- age: { lt: 65 }, // less than
197
- age: { lte: 65 }, // less than or equal
198
- }
199
-
200
- // 배열 필터
201
- where: {
202
- id: { in: [1, 2, 3] },
203
- id: { notIn: [4, 5, 6] },
204
- }
205
-
206
- // 논리 연산자
207
- where: {
208
- OR: [
209
- { email: { contains: 'prisma' } },
210
- { name: { contains: 'Prisma' } },
211
- ],
212
- AND: [
213
- { published: true },
214
- { authorId: 1 },
215
- ],
216
- NOT: { email: { contains: 'test' } },
217
- }
88
+ // 논리
89
+ { OR: [...], AND: [...], NOT: {...} }
218
90
  ```