🎉

【Next.js】基礎から始めるNext.js API Routes【20On Delete Cascade】

2022/12/29に公開

【20On Delete Cascade】

YouTube: https://youtu.be/9y4UxgJRbhk

https://youtu.be/9y4UxgJRbhk

今回は「Post」のデータを持つユーザーの削除の処理を実装します。

こちらは「schema.prisma」ファイルにある「Post」モデルの「author」に
リレーションの設定がされていますので
こちらに「onDelete: Cascade」の設定を追加します。

この設定を追加するとユーザの削除と同時にそのユーザーの「Post」のデータも
一緒に削除してくれます。

削除後は「prisma studio」で「Post」のデータも確認してみましょう。

prismaのマイグレートコマンド
npx prisma migrate dev --name addcascade

prisma studio起動コマンド
npx prisma studio
prisma/schema.prisma
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema

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

datasource db {
  provider = "sqlite"
  url      = env("DATABASE_URL")
}

model User {
  id    Int     @id @default(autoincrement())
  email String  @unique
  password String
  name  String?
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now()) @updatedAt
  posts Post[]
}

model Post {
  id        Int     @id @default(autoincrement())
  title     String
  content   String?
  published Boolean @default(false)
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now()) @updatedAt
  author    User    @relation(fields: [authorId], references: [id], onDelete: Cascade)
  authorId  Int
}

Discussion