89 lines
2.7 KiB
SQL
89 lines
2.7 KiB
SQL
/*
|
|
Warnings:
|
|
|
|
- The primary key for the `User` table will be changed. If it partially fails, the table could be left without primary key constraint.
|
|
- A unique constraint covering the columns `[id]` on the table `User` will be added. If there are existing duplicate values, this will fail.
|
|
- A unique constraint covering the columns `[name]` on the table `User` will be added. If there are existing duplicate values, this will fail.
|
|
|
|
*/
|
|
-- AlterTable
|
|
ALTER TABLE "User" DROP CONSTRAINT "User_pkey",
|
|
ADD COLUMN "admin" BOOLEAN NOT NULL DEFAULT false,
|
|
ADD COLUMN "communityId" TEXT,
|
|
ADD COLUMN "description" TEXT,
|
|
ADD COLUMN "lastLogin" TIMESTAMP(3),
|
|
ADD COLUMN "passwordHash" TEXT,
|
|
ADD COLUMN "registerDate" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
ALTER COLUMN "id" DROP DEFAULT,
|
|
ALTER COLUMN "id" SET DATA TYPE TEXT,
|
|
ALTER COLUMN "email" DROP NOT NULL,
|
|
ADD CONSTRAINT "User_pkey" PRIMARY KEY ("id");
|
|
DROP SEQUENCE "User_id_seq";
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Community" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Community_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Channel" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"communityId" TEXT,
|
|
|
|
CONSTRAINT "Channel_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Role" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"communityId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Role_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "Session" (
|
|
"id" TEXT NOT NULL,
|
|
"token" TEXT NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Community_id_key" ON "Community"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Community_name_key" ON "Community"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Channel_id_key" ON "Channel"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Role_id_key" ON "Role"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "Session_id_key" ON "Session"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_id_key" ON "User"("id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "User_name_key" ON "User"("name");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Channel" ADD CONSTRAINT "Channel_communityId_fkey" FOREIGN KEY ("communityId") REFERENCES "Community"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Role" ADD CONSTRAINT "Role_communityId_fkey" FOREIGN KEY ("communityId") REFERENCES "Community"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "User" ADD CONSTRAINT "User_communityId_fkey" FOREIGN KEY ("communityId") REFERENCES "Community"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|