Apply Prisma migrations on startup
All checks were successful
Build and deploy Backend / build (push) Successful in 3m28s

This commit is contained in:
Ruslan Bakiev
2026-05-08 16:01:00 +07:00
parent 7ca503667f
commit bba9c98c82
2 changed files with 42 additions and 2 deletions

View File

@@ -15,10 +15,10 @@ FROM node:22-alpine AS runner
WORKDIR /app WORKDIR /app
ENV NODE_ENV=production ENV NODE_ENV=production
COPY package*.json ./ COPY package*.json ./
RUN npm ci --omit=dev RUN npm ci
COPY --from=build /app/dist ./dist COPY --from=build /app/dist ./dist
COPY --from=build /app/src/generated ./dist/generated COPY --from=build /app/src/generated ./dist/generated
COPY --from=build /app/prisma ./prisma COPY --from=build /app/prisma ./prisma
COPY --from=build /app/prisma.config.ts ./prisma.config.ts COPY --from=build /app/prisma.config.ts ./prisma.config.ts
EXPOSE 4000 EXPOSE 4000
CMD ["npm", "run", "start"] CMD ["sh", "-c", "npm run prisma:migrate:deploy && npm run start"]

View File

@@ -0,0 +1,40 @@
-- CreateSchema
CREATE SCHEMA IF NOT EXISTS "public";
-- CreateEnum
CREATE TYPE "VoiceExperienceStatus" AS ENUM ('UPLOADED', 'TRANSCRIBING', 'TRANSCRIBED', 'ANALYZING', 'ANALYZED', 'FAILED');
-- CreateTable
CREATE TABLE "Place" (
"id" TEXT NOT NULL,
"googlePlaceId" TEXT NOT NULL,
"name" TEXT NOT NULL,
"latitude" DOUBLE PRECISION NOT NULL,
"longitude" DOUBLE PRECISION NOT NULL,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "Place_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "VoiceExperience" (
"id" TEXT NOT NULL,
"placeId" TEXT NOT NULL,
"durationSeconds" INTEGER NOT NULL,
"audioObjectKey" TEXT NOT NULL,
"status" "VoiceExperienceStatus" NOT NULL DEFAULT 'UPLOADED',
"transcript" TEXT,
"analysis" JSONB,
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt" TIMESTAMP(3) NOT NULL,
CONSTRAINT "VoiceExperience_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "Place_googlePlaceId_key" ON "Place"("googlePlaceId");
-- AddForeignKey
ALTER TABLE "VoiceExperience" ADD CONSTRAINT "VoiceExperience_placeId_fkey" FOREIGN KEY ("placeId") REFERENCES "Place"("id") ON DELETE RESTRICT ON UPDATE CASCADE;