Moving the arttags table to tags table part 1
This commit is contained in:
140
prisma/migrations/20260202114116_tags_01/migration.sql
Normal file
140
prisma/migrations/20260202114116_tags_01/migration.sql
Normal file
@ -0,0 +1,140 @@
|
||||
-- CreateTable
|
||||
CREATE TABLE "Tag" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"sortIndex" INTEGER NOT NULL DEFAULT 0,
|
||||
"name" TEXT NOT NULL,
|
||||
"slug" TEXT NOT NULL,
|
||||
"isVisible" BOOLEAN NOT NULL DEFAULT true,
|
||||
"description" TEXT,
|
||||
|
||||
CONSTRAINT "Tag_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TagAlias" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"alias" TEXT NOT NULL,
|
||||
"tagId" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "TagAlias_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "TagCategory" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
"tagId" TEXT NOT NULL,
|
||||
"categoryId" TEXT NOT NULL,
|
||||
"isParent" BOOLEAN NOT NULL DEFAULT false,
|
||||
"showOnAnimalPage" BOOLEAN NOT NULL DEFAULT false,
|
||||
"parentTagId" TEXT,
|
||||
|
||||
CONSTRAINT "TagCategory_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "Miniature" (
|
||||
"id" TEXT NOT NULL,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "Miniature_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_ArtworkTagsV2" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_ArtworkTagsV2_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_MiniatureTags" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_MiniatureTags_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "_CommissionTypeTags" (
|
||||
"A" TEXT NOT NULL,
|
||||
"B" TEXT NOT NULL,
|
||||
|
||||
CONSTRAINT "_CommissionTypeTags_AB_pkey" PRIMARY KEY ("A","B")
|
||||
);
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Tag_name_key" ON "Tag"("name");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "Tag_slug_key" ON "Tag"("slug");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TagAlias_alias_key" ON "TagAlias"("alias");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "TagAlias_alias_idx" ON "TagAlias"("alias");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TagAlias_tagId_alias_key" ON "TagAlias"("tagId", "alias");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "TagCategory_categoryId_idx" ON "TagCategory"("categoryId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "TagCategory_tagId_idx" ON "TagCategory"("tagId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "TagCategory_parentTagId_idx" ON "TagCategory"("parentTagId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "TagCategory_categoryId_parentTagId_idx" ON "TagCategory"("categoryId", "parentTagId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE UNIQUE INDEX "TagCategory_tagId_categoryId_key" ON "TagCategory"("tagId", "categoryId");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_ArtworkTagsV2_B_index" ON "_ArtworkTagsV2"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_MiniatureTags_B_index" ON "_MiniatureTags"("B");
|
||||
|
||||
-- CreateIndex
|
||||
CREATE INDEX "_CommissionTypeTags_B_index" ON "_CommissionTypeTags"("B");
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TagAlias" ADD CONSTRAINT "TagAlias_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TagCategory" ADD CONSTRAINT "TagCategory_tagId_fkey" FOREIGN KEY ("tagId") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TagCategory" ADD CONSTRAINT "TagCategory_categoryId_fkey" FOREIGN KEY ("categoryId") REFERENCES "ArtCategory"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "TagCategory" ADD CONSTRAINT "TagCategory_parentTagId_fkey" FOREIGN KEY ("parentTagId") REFERENCES "Tag"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArtworkTagsV2" ADD CONSTRAINT "_ArtworkTagsV2_A_fkey" FOREIGN KEY ("A") REFERENCES "Artwork"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_ArtworkTagsV2" ADD CONSTRAINT "_ArtworkTagsV2_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_MiniatureTags" ADD CONSTRAINT "_MiniatureTags_A_fkey" FOREIGN KEY ("A") REFERENCES "Miniature"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_MiniatureTags" ADD CONSTRAINT "_MiniatureTags_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_CommissionTypeTags" ADD CONSTRAINT "_CommissionTypeTags_A_fkey" FOREIGN KEY ("A") REFERENCES "CommissionType"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "_CommissionTypeTags" ADD CONSTRAINT "_CommissionTypeTags_B_fkey" FOREIGN KEY ("B") REFERENCES "Tag"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@ -54,6 +54,7 @@ model Artwork {
|
||||
categories ArtCategory[]
|
||||
colors ArtworkColor[]
|
||||
tags ArtTag[]
|
||||
tagsV2 Tag[] @relation("ArtworkTagsV2")
|
||||
variants FileVariant[]
|
||||
|
||||
@@index([colorStatus])
|
||||
@ -102,6 +103,7 @@ model ArtCategory {
|
||||
|
||||
artworks Artwork[]
|
||||
tags ArtTag[]
|
||||
tagLinks TagCategory[]
|
||||
}
|
||||
|
||||
model ArtTag {
|
||||
@ -126,6 +128,63 @@ model ArtTag {
|
||||
children ArtTag[] @relation("TagHierarchy")
|
||||
}
|
||||
|
||||
model Tag {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
sortIndex Int @default(0)
|
||||
|
||||
name String @unique
|
||||
slug String @unique
|
||||
isVisible Boolean @default(true)
|
||||
|
||||
description String?
|
||||
|
||||
aliases TagAlias[]
|
||||
categoryLinks TagCategory[]
|
||||
categoryParents TagCategory[] @relation("TagCategoryParent")
|
||||
artworks Artwork[] @relation("ArtworkTagsV2")
|
||||
commissionTypes CommissionType[] @relation("CommissionTypeTags")
|
||||
miniatures Miniature[] @relation("MiniatureTags")
|
||||
}
|
||||
|
||||
model TagAlias {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
alias String @unique
|
||||
|
||||
tagId String
|
||||
tag Tag @relation(fields: [tagId], references: [id], onDelete: Cascade)
|
||||
|
||||
@@unique([tagId, alias])
|
||||
@@index([alias])
|
||||
}
|
||||
|
||||
model TagCategory {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
tagId String
|
||||
categoryId String
|
||||
|
||||
isParent Boolean @default(false)
|
||||
showOnAnimalPage Boolean @default(false)
|
||||
parentTagId String?
|
||||
|
||||
tag Tag @relation(fields: [tagId], references: [id], onDelete: Cascade)
|
||||
category ArtCategory @relation(fields: [categoryId], references: [id], onDelete: Cascade)
|
||||
parentTag Tag? @relation("TagCategoryParent", fields: [parentTagId], references: [id], onDelete: SetNull)
|
||||
|
||||
@@unique([tagId, categoryId])
|
||||
@@index([categoryId])
|
||||
@@index([tagId])
|
||||
@@index([parentTagId])
|
||||
@@index([categoryId, parentTagId])
|
||||
}
|
||||
|
||||
model ArtTagAlias {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
@ -140,6 +199,14 @@ model ArtTagAlias {
|
||||
@@index([alias])
|
||||
}
|
||||
|
||||
model Miniature {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
updatedAt DateTime @updatedAt
|
||||
|
||||
tags Tag[] @relation("MiniatureTags")
|
||||
}
|
||||
|
||||
model Color {
|
||||
id String @id @default(cuid())
|
||||
createdAt DateTime @default(now())
|
||||
@ -265,6 +332,8 @@ model CommissionType {
|
||||
|
||||
description String?
|
||||
|
||||
tags Tag[] @relation("CommissionTypeTags")
|
||||
|
||||
options CommissionTypeOption[]
|
||||
extras CommissionTypeExtra[]
|
||||
customInputs CommissionTypeCustomInput[]
|
||||
|
||||
Reference in New Issue
Block a user