diff --git a/server/prisma/migrations/20240910234439_init/migration.sql b/server/prisma/migrations/0_init/migration.sql similarity index 86% rename from server/prisma/migrations/20240910234439_init/migration.sql rename to server/prisma/migrations/0_init/migration.sql index a3f23aa4..57bdba04 100644 --- a/server/prisma/migrations/20240910234439_init/migration.sql +++ b/server/prisma/migrations/0_init/migration.sql @@ -1,5 +1,5 @@ -- CreateEnum -CREATE TYPE "Day" AS ENUM ('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'); +CREATE TYPE "Day" AS ENUM ('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun', 'other'); -- CreateEnum CREATE TYPE "MatchingStatus" AS ENUM ('PENDING', 'MATCHED', 'REJECTED'); @@ -8,21 +8,30 @@ CREATE TYPE "MatchingStatus" AS ENUM ('PENDING', 'MATCHED', 'REJECTED'); CREATE TABLE "User" ( "id" SERIAL NOT NULL, "guid" TEXT NOT NULL, - "name" TEXT NOT NULL DEFAULT 'ๅ็„กใ—', - "pictureUrl" TEXT NOT NULL DEFAULT '', - "grade" TEXT NOT NULL DEFAULT '', - "gender" TEXT NOT NULL DEFAULT '', - "hobby" TEXT NOT NULL DEFAULT '', - "intro_short" TEXT NOT NULL DEFAULT '', - "intro_long" TEXT NOT NULL DEFAULT '', + "name" TEXT NOT NULL, + "gender" TEXT NOT NULL, + "grade" TEXT NOT NULL, + "faculty" TEXT NOT NULL, + "department" TEXT NOT NULL, + "intro" TEXT NOT NULL, + "pictureUrl" TEXT NOT NULL, CONSTRAINT "User_pkey" PRIMARY KEY ("id") ); +-- CreateTable +CREATE TABLE "Avatar" ( + "guid" TEXT NOT NULL, + "data" BYTEA NOT NULL, + + CONSTRAINT "Avatar_pkey" PRIMARY KEY ("guid") +); + -- CreateTable CREATE TABLE "Course" ( "id" TEXT NOT NULL, "name" TEXT NOT NULL, + "teacher" TEXT NOT NULL, CONSTRAINT "Course_pkey" PRIMARY KEY ("id") ); @@ -94,20 +103,21 @@ CREATE UNIQUE INDEX "Relationship_sendingUserId_receivingUserId_key" ON "Relatio -- AddForeignKey ALTER TABLE "Slot" ADD CONSTRAINT "Slot_courseId_fkey" FOREIGN KEY ("courseId") REFERENCES "Course"("id") ON DELETE RESTRICT ON UPDATE CASCADE; --- AddForeignKey -ALTER TABLE "Enrollment" ADD CONSTRAINT "Enrollment_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; - -- AddForeignKey ALTER TABLE "Enrollment" ADD CONSTRAINT "Enrollment_courseId_fkey" FOREIGN KEY ("courseId") REFERENCES "Course"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- AddForeignKey -ALTER TABLE "Relationship" ADD CONSTRAINT "Relationship_sendingUserId_fkey" FOREIGN KEY ("sendingUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; +ALTER TABLE "Enrollment" ADD CONSTRAINT "Enrollment_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Relationship" ADD CONSTRAINT "Relationship_receivingUserId_fkey" FOREIGN KEY ("receivingUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; +-- AddForeignKey +ALTER TABLE "Relationship" ADD CONSTRAINT "Relationship_sendingUserId_fkey" FOREIGN KEY ("sendingUserId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + -- AddForeignKey ALTER TABLE "Message" ADD CONSTRAINT "Message_relationId_fkey" FOREIGN KEY ("relationId") REFERENCES "Relationship"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- AddForeignKey ALTER TABLE "Message" ADD CONSTRAINT "Message_sharedRoomId_fkey" FOREIGN KEY ("sharedRoomId") REFERENCES "SharedRoom"("id") ON DELETE CASCADE ON UPDATE CASCADE; + diff --git a/server/prisma/migrations/1_v2/migration.sql b/server/prisma/migrations/1_v2/migration.sql new file mode 100644 index 00000000..7daf56bd --- /dev/null +++ b/server/prisma/migrations/1_v2/migration.sql @@ -0,0 +1,43 @@ +-- AlterTable +ALTER TABLE "Message" ADD COLUMN "isPicture" BOOLEAN NOT NULL DEFAULT false, +ADD COLUMN "read" BOOLEAN NOT NULL DEFAULT false; + +-- AlterTable +ALTER TABLE "User" ALTER COLUMN "pictureUrl" SET DEFAULT '/avatar.svg'; + +-- CreateTable +CREATE TABLE "Picture" ( + "hash" TEXT NOT NULL, + "data" BYTEA NOT NULL, + "key" TEXT NOT NULL, + + CONSTRAINT "Picture_pkey" PRIMARY KEY ("hash") +); + +-- CreateTable +CREATE TABLE "InterestSubject" ( + "id" SERIAL NOT NULL, + "name" TEXT NOT NULL, + "group" TEXT NOT NULL, + + CONSTRAINT "InterestSubject_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Interest" ( + "userId" INTEGER NOT NULL, + "subjectId" INTEGER NOT NULL +); + +-- CreateIndex +CREATE UNIQUE INDEX "InterestSubject_name_group_key" ON "InterestSubject"("name", "group"); + +-- CreateIndex +CREATE UNIQUE INDEX "Interest_userId_subjectId_key" ON "Interest"("userId", "subjectId"); + +-- AddForeignKey +ALTER TABLE "Interest" ADD CONSTRAINT "Interest_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Interest" ADD CONSTRAINT "Interest_subjectId_fkey" FOREIGN KEY ("subjectId") REFERENCES "InterestSubject"("id") ON DELETE CASCADE ON UPDATE CASCADE; +