fix(prisma): track migration SQL files in git

migration.sql was gitignored, so CI builds a Docker image from a
fresh clone with empty migration directories. prisma migrate deploy
then has nothing to apply, leaving the database schema-less on first
launch (P2021: table does not exist).
This commit is contained in:
2026-07-30 17:32:40 +02:00
parent d8d152e249
commit 0da6dc7810
3 changed files with 64 additions and 3 deletions
-3
View File
@@ -38,8 +38,5 @@ yarn-error.log*
*.tsbuildinfo *.tsbuildinfo
next-env.d.ts next-env.d.ts
# prisma
prisma/migrations/*/migration.sql
# local Claude Code tooling (skills, agent config) - not part of the app # local Claude Code tooling (skills, agent config) - not part of the app
/.claude /.claude
@@ -0,0 +1,62 @@
-- CreateTable
CREATE TABLE "Proposal" (
"id" TEXT NOT NULL PRIMARY KEY,
"slug" TEXT NOT NULL,
"manageToken" TEXT NOT NULL,
"senderName" TEXT NOT NULL,
"recipientName" TEXT NOT NULL,
"title" TEXT NOT NULL,
"message" TEXT NOT NULL,
"theme" TEXT NOT NULL DEFAULT 'sunset',
"gradientFrom" TEXT,
"gradientVia" TEXT,
"gradientTo" TEXT,
"gifUrl" TEXT,
"evasiveNo" BOOLEAN NOT NULL DEFAULT false,
"status" TEXT NOT NULL DEFAULT 'draft',
"expiresAt" DATETIME,
"createdAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
-- CreateTable
CREATE TABLE "ActivityOption" (
"id" TEXT NOT NULL PRIMARY KEY,
"proposalId" TEXT NOT NULL,
"title" TEXT NOT NULL,
"description" TEXT,
"emoji" TEXT NOT NULL DEFAULT '🎉',
"order" INTEGER NOT NULL DEFAULT 0,
CONSTRAINT "ActivityOption_proposalId_fkey" FOREIGN KEY ("proposalId") REFERENCES "Proposal" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "TimeSlot" (
"id" TEXT NOT NULL PRIMARY KEY,
"activityOptionId" TEXT NOT NULL,
"label" TEXT NOT NULL,
"startsAt" TEXT,
CONSTRAINT "TimeSlot_activityOptionId_fkey" FOREIGN KEY ("activityOptionId") REFERENCES "ActivityOption" ("id") ON DELETE CASCADE ON UPDATE CASCADE
);
-- CreateTable
CREATE TABLE "Response" (
"id" TEXT NOT NULL PRIMARY KEY,
"proposalId" TEXT NOT NULL,
"selectedActivityId" TEXT,
"selectedTimeSlotId" TEXT,
"answer" TEXT NOT NULL,
"note" TEXT,
"respondedAt" DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "Response_proposalId_fkey" FOREIGN KEY ("proposalId") REFERENCES "Proposal" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT "Response_selectedActivityId_fkey" FOREIGN KEY ("selectedActivityId") REFERENCES "ActivityOption" ("id") ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT "Response_selectedTimeSlotId_fkey" FOREIGN KEY ("selectedTimeSlotId") REFERENCES "TimeSlot" ("id") ON DELETE SET NULL ON UPDATE CASCADE
);
-- CreateIndex
CREATE UNIQUE INDEX "Proposal_slug_key" ON "Proposal"("slug");
-- CreateIndex
CREATE UNIQUE INDEX "Proposal_manageToken_key" ON "Proposal"("manageToken");
-- CreateIndex
CREATE UNIQUE INDEX "Response_proposalId_key" ON "Response"("proposalId");
@@ -0,0 +1,2 @@
-- AlterTable
ALTER TABLE "ActivityOption" ADD COLUMN "location" TEXT;