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:
@@ -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;
|
||||||
Reference in New Issue
Block a user