123
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- RedefineTables
|
||||
PRAGMA defer_foreign_keys=ON;
|
||||
PRAGMA foreign_keys=OFF;
|
||||
CREATE TABLE "new_comments" (
|
||||
"id" TEXT NOT NULL PRIMARY KEY,
|
||||
"postId" TEXT NOT NULL,
|
||||
"parentId" TEXT,
|
||||
"depth" INTEGER NOT NULL DEFAULT 0,
|
||||
"authorId" TEXT,
|
||||
"content" TEXT NOT NULL,
|
||||
"isAnonymous" BOOLEAN NOT NULL DEFAULT false,
|
||||
"isSecret" BOOLEAN NOT NULL DEFAULT false,
|
||||
"secretPasswordHash" TEXT,
|
||||
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" DATETIME NOT NULL,
|
||||
CONSTRAINT "comments_postId_fkey" FOREIGN KEY ("postId") REFERENCES "posts" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT "comments_parentId_fkey" FOREIGN KEY ("parentId") REFERENCES "comments" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
|
||||
CONSTRAINT "comments_authorId_fkey" FOREIGN KEY ("authorId") REFERENCES "users" ("userId") ON DELETE SET NULL ON UPDATE CASCADE
|
||||
);
|
||||
INSERT INTO "new_comments" ("authorId", "content", "createdAt", "id", "isAnonymous", "isSecret", "postId", "secretPasswordHash", "updatedAt") SELECT "authorId", "content", "createdAt", "id", "isAnonymous", "isSecret", "postId", "secretPasswordHash", "updatedAt" FROM "comments";
|
||||
DROP TABLE "comments";
|
||||
ALTER TABLE "new_comments" RENAME TO "comments";
|
||||
CREATE INDEX "comments_postId_createdAt_idx" ON "comments"("postId", "createdAt");
|
||||
CREATE INDEX "comments_parentId_idx" ON "comments"("parentId");
|
||||
PRAGMA foreign_keys=ON;
|
||||
PRAGMA defer_foreign_keys=OFF;
|
||||
@@ -324,6 +324,8 @@ model UserRole {
|
||||
model Comment {
|
||||
id String @id @default(cuid())
|
||||
postId String
|
||||
parentId String? // 부모 댓글 ID (null이면 최상위 댓글)
|
||||
depth Int @default(0) // 댓글 깊이 (0=최상위, 1=1단계 대댓글, 2=2단계 대댓글)
|
||||
authorId String?
|
||||
content String
|
||||
isAnonymous Boolean @default(false)
|
||||
@@ -332,11 +334,14 @@ model Comment {
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
|
||||
author User? @relation(fields: [authorId], references: [userId], onDelete: SetNull)
|
||||
reports Report[]
|
||||
post Post @relation(fields: [postId], references: [id], onDelete: Cascade)
|
||||
parent Comment? @relation("CommentReplies", fields: [parentId], references: [id], onDelete: Cascade)
|
||||
replies Comment[] @relation("CommentReplies")
|
||||
author User? @relation(fields: [authorId], references: [userId], onDelete: SetNull)
|
||||
reports Report[]
|
||||
|
||||
@@index([postId, createdAt])
|
||||
@@index([parentId])
|
||||
@@map("comments")
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user