33 lines
1.2 KiB
SQL
33 lines
1.2 KiB
SQL
CREATE TABLE IF NOT EXISTS "video_transcode_jobs" (
|
|
"id" TEXT NOT NULL,
|
|
"materialId" TEXT NOT NULL,
|
|
"videoSourceUrl" TEXT NOT NULL,
|
|
"status" TEXT NOT NULL DEFAULT 'queued',
|
|
"attempts" INTEGER NOT NULL DEFAULT 0,
|
|
"maxAttempts" INTEGER NOT NULL DEFAULT 3,
|
|
"needsCoverImage" BOOLEAN NOT NULL DEFAULT true,
|
|
"errorMessage" TEXT,
|
|
"lockedAt" TIMESTAMP(3),
|
|
"startedAt" TIMESTAMP(3),
|
|
"finishedAt" TIMESTAMP(3),
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT "video_transcode_jobs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "video_transcode_jobs_materialId_key"
|
|
ON "video_transcode_jobs"("materialId");
|
|
|
|
CREATE INDEX IF NOT EXISTS "video_transcode_jobs_status_updatedAt_idx"
|
|
ON "video_transcode_jobs"("status", "updatedAt");
|
|
|
|
CREATE INDEX IF NOT EXISTS "video_transcode_jobs_lockedAt_idx"
|
|
ON "video_transcode_jobs"("lockedAt");
|
|
|
|
ALTER TABLE "video_transcode_jobs"
|
|
DROP CONSTRAINT IF EXISTS "video_transcode_jobs_materialId_fkey";
|
|
|
|
ALTER TABLE "video_transcode_jobs"
|
|
ADD CONSTRAINT "video_transcode_jobs_materialId_fkey"
|
|
FOREIGN KEY ("materialId") REFERENCES "materials"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|