Apply Prisma migrations on startup
All checks were successful
Build and deploy Backend / build (push) Successful in 3m28s
All checks were successful
Build and deploy Backend / build (push) Successful in 3m28s
This commit is contained in:
@@ -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"]
|
||||||
|
|||||||
40
prisma/migrations/1_init_schema/migration.sql
Normal file
40
prisma/migrations/1_init_schema/migration.sql
Normal 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;
|
||||||
|
|
||||||
Reference in New Issue
Block a user