30 lines
890 B
SQL
30 lines
890 B
SQL
-- CreateEnum
|
|
CREATE TYPE "Type" AS ENUM ('EMAIL', 'PHONE');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "auth" (
|
|
"uuid" UUID NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "auth_pkey" PRIMARY KEY ("uuid")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "username" (
|
|
"username" TEXT NOT NULL,
|
|
"authUuid" UUID NOT NULL,
|
|
"type" "Type" NOT NULL DEFAULT 'EMAIL',
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "username_pkey" PRIMARY KEY ("username")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "username_authUuid_type_key" ON "username"("authUuid", "type");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "username" ADD CONSTRAINT "username_authUuid_fkey" FOREIGN KEY ("authUuid") REFERENCES "auth"("uuid") ON DELETE CASCADE ON UPDATE CASCADE;
|