git-subtree-dir: manga-site git-subtree-split: f2ef775f7095dc2b107b576cd4053593e89dd887
52 lines
1.4 KiB
SQL
52 lines
1.4 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "Status" AS ENUM ('PUBLISHED', 'DRAFT');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Manga" (
|
|
"id" SERIAL NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"coverUrl" TEXT NOT NULL,
|
|
"slug" TEXT NOT NULL,
|
|
"status" "Status" NOT NULL DEFAULT 'PUBLISHED',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "Manga_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Chapter" (
|
|
"id" SERIAL NOT NULL,
|
|
"mangaId" INTEGER NOT NULL,
|
|
"number" INTEGER NOT NULL,
|
|
"title" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Chapter_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Page" (
|
|
"id" SERIAL NOT NULL,
|
|
"chapterId" INTEGER NOT NULL,
|
|
"number" INTEGER NOT NULL,
|
|
"imageUrl" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Page_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Manga_slug_key" ON "Manga"("slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Chapter_mangaId_number_key" ON "Chapter"("mangaId", "number");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Page_chapterId_number_key" ON "Page"("chapterId", "number");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Chapter" ADD CONSTRAINT "Chapter_mangaId_fkey" FOREIGN KEY ("mangaId") REFERENCES "Manga"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Page" ADD CONSTRAINT "Page_chapterId_fkey" FOREIGN KEY ("chapterId") REFERENCES "Chapter"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|