From 74da8b47231a7c2aee43881177aa4552bece2d5b Mon Sep 17 00:00:00 2001 From: awtkns <32209255+awtkns@users.noreply.github.com> Date: Mon, 8 Apr 2024 23:40:20 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=B0=20Migrate=20to=20supabase=20for=20?= =?UTF-8?q?free=20tier=20(prev=20pscale)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20240409062859_init/migration.sql | 119 ++++++++++++++++++ prisma/migrations/migration_lock.toml | 3 + prisma/schema.prisma | 12 +- 3 files changed, 131 insertions(+), 3 deletions(-) create mode 100644 prisma/migrations/20240409062859_init/migration.sql create mode 100644 prisma/migrations/migration_lock.toml diff --git a/prisma/migrations/20240409062859_init/migration.sql b/prisma/migrations/20240409062859_init/migration.sql new file mode 100644 index 0000000..a78a0ce --- /dev/null +++ b/prisma/migrations/20240409062859_init/migration.sql @@ -0,0 +1,119 @@ +-- CreateTable +CREATE TABLE "Account" ( + "id" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "type" TEXT NOT NULL, + "provider" TEXT NOT NULL, + "providerAccountId" TEXT NOT NULL, + "refresh_token" TEXT, + "refresh_token_expires_in" INTEGER, + "access_token" TEXT, + "expires_at" INTEGER, + "token_type" TEXT, + "scope" TEXT, + "id_token" TEXT, + "session_state" TEXT, + + CONSTRAINT "Account_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Session" ( + "id" TEXT NOT NULL, + "sessionToken" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "expires" TIMESTAMP(3) NOT NULL, + + CONSTRAINT "Session_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "User" ( + "id" TEXT NOT NULL, + "name" TEXT, + "email" TEXT, + "emailVerified" TIMESTAMP(3), + "image" TEXT, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" TIMESTAMP(3), + + CONSTRAINT "User_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "VerificationToken" ( + "identifier" TEXT NOT NULL, + "token" TEXT NOT NULL, + "expires" TIMESTAMP(3) NOT NULL +); + +-- CreateTable +CREATE TABLE "EstimateRound" ( + "id" TEXT NOT NULL, + "channel" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "EstimateRound_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "Estimate" ( + "id" TEXT NOT NULL, + "roundId" TEXT NOT NULL, + "userId" TEXT NOT NULL, + "value" TEXT NOT NULL, + "presenceRef" TEXT NOT NULL, + "createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "Estimate_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "healthcheck" ( + "id" SERIAL NOT NULL, + "created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + + CONSTRAINT "healthcheck_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId"); + +-- CreateIndex +CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken"); + +-- CreateIndex +CREATE UNIQUE INDEX "User_email_key" ON "User"("email"); + +-- CreateIndex +CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"("token"); + +-- CreateIndex +CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON "VerificationToken"("identifier", "token"); + +-- CreateIndex +CREATE INDEX "EstimateRound_channel_createdAt_idx" ON "EstimateRound"("channel", "createdAt" DESC); + +-- CreateIndex +CREATE INDEX "Estimate_roundId_idx" ON "Estimate"("roundId"); + +-- CreateIndex +CREATE INDEX "Estimate_userId_idx" ON "Estimate"("userId"); + +-- CreateIndex +CREATE INDEX "Estimate_presenceRef_idx" ON "Estimate"("presenceRef"); + +-- CreateIndex +CREATE UNIQUE INDEX "Estimate_roundId_userId_presenceRef_key" ON "Estimate"("roundId", "userId", "presenceRef"); + +-- AddForeignKey +ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Estimate" ADD CONSTRAINT "Estimate_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE; + +-- AddForeignKey +ALTER TABLE "Estimate" ADD CONSTRAINT "Estimate_roundId_fkey" FOREIGN KEY ("roundId") REFERENCES "EstimateRound"("id") ON DELETE CASCADE ON UPDATE CASCADE; diff --git a/prisma/migrations/migration_lock.toml b/prisma/migrations/migration_lock.toml new file mode 100644 index 0000000..fbffa92 --- /dev/null +++ b/prisma/migrations/migration_lock.toml @@ -0,0 +1,3 @@ +# Please do not edit this file manually +# It should be added in your version-control system (i.e. Git) +provider = "postgresql" \ No newline at end of file diff --git a/prisma/schema.prisma b/prisma/schema.prisma index ad70234..7ecfd84 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -6,9 +6,8 @@ generator client { } datasource db { - provider = "mysql" - url = env("DATABASE_URL") - relationMode = "prisma" + provider = "postgresql" + url = env("DATABASE_URL") } // Necessary for Next auth @@ -85,3 +84,10 @@ model Estimate { @@index([userId]) @@index([presenceRef]) } + +model HealthCheck { + id Int @id @default(autoincrement()) + created_at DateTime @default(now()) + + @@map("healthcheck") +}