Initial commit
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
-- Migration: Task-First Workflow Refactor
|
||||
-- 1. Delete old shot-based versions (versions linked to shots, not tasks)
|
||||
DELETE FROM "versions" WHERE "shotId" IS NOT NULL AND "taskId" IS NULL;
|
||||
|
||||
-- 2. Drop defaults before type changes (they hold a reference to the enum)
|
||||
ALTER TABLE "shots" ALTER COLUMN "status" DROP DEFAULT;
|
||||
ALTER TABLE "assets" ALTER COLUMN "status" DROP DEFAULT;
|
||||
|
||||
-- 3. Cast status columns to text so we can rename values
|
||||
ALTER TABLE "shots" ALTER COLUMN "status" TYPE TEXT;
|
||||
ALTER TABLE "assets" ALTER COLUMN "status" TYPE TEXT;
|
||||
|
||||
-- 4. Rename old enum values in the data
|
||||
UPDATE "shots" SET "status" = 'IN_REVIEW' WHERE "status" IN ('INTERNAL_REVIEW', 'CLIENT_REVIEW');
|
||||
UPDATE "shots" SET "status" = 'COMPLETE' WHERE "status" IN ('APPROVED', 'FINAL');
|
||||
UPDATE "assets" SET "status" = 'IN_REVIEW' WHERE "status" IN ('INTERNAL_REVIEW', 'CLIENT_REVIEW');
|
||||
UPDATE "assets" SET "status" = 'COMPLETE' WHERE "status" IN ('APPROVED', 'FINAL');
|
||||
|
||||
-- 5. Drop old enum type (no dependents remain)
|
||||
DROP TYPE "ShotStatus";
|
||||
|
||||
-- 6. Create new enum type with 5 values
|
||||
CREATE TYPE "ShotStatus" AS ENUM ('WAITING', 'IN_PROGRESS', 'IN_REVIEW', 'REVISIONS', 'COMPLETE');
|
||||
|
||||
-- 7. Convert columns back to the new enum and restore defaults
|
||||
ALTER TABLE "shots" ALTER COLUMN "status" TYPE "ShotStatus" USING "status"::"ShotStatus";
|
||||
ALTER TABLE "shots" ALTER COLUMN "status" SET DEFAULT 'WAITING';
|
||||
ALTER TABLE "assets" ALTER COLUMN "status" TYPE "ShotStatus" USING "status"::"ShotStatus";
|
||||
ALTER TABLE "assets" ALTER COLUMN "status" SET DEFAULT 'WAITING';
|
||||
Reference in New Issue
Block a user