Fix phase7 FK rename migration: drop old roundId before rename

The pipeline migration (20260213) added stageId columns while keeping
the original roundId columns as nullable. The rename migration tried
to RENAME stageId TO roundId but failed because roundId already existed.
Fix: DROP the old roundId column first, then rename stageId → roundId.
Also restore FK constraints on ConflictOfInterest and TaggingJob.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Matt 2026-02-15 23:16:06 +01:00
parent 6ca39c976b
commit 1233cdd22c
1 changed files with 45 additions and 74 deletions

View File

@ -3,10 +3,17 @@
-- ============================================================================= -- =============================================================================
-- This migration renames stageId columns to roundId and updates FK constraints -- This migration renames stageId columns to roundId and updates FK constraints
-- to point to the Round table instead of Stage table. -- to point to the Round table instead of Stage table.
--
-- NOTE: After the pipeline migration (20260213), most tables have BOTH a
-- nullable roundId column (legacy, no FK) AND a stageId column. We must
-- drop the old roundId column before renaming stageId → roundId.
-- ─── 1. EvaluationForm ─────────────────────────────────────────────────────── -- ─── 1. EvaluationForm ───────────────────────────────────────────────────────
-- Drop FK constraint -- Drop old roundId column (nullable, no FK since 20260213 migration)
ALTER TABLE "EvaluationForm" DROP COLUMN IF EXISTS "roundId";
-- Drop FK constraint on stageId
ALTER TABLE "EvaluationForm" DROP CONSTRAINT IF EXISTS "EvaluationForm_stageId_fkey"; ALTER TABLE "EvaluationForm" DROP CONSTRAINT IF EXISTS "EvaluationForm_stageId_fkey";
-- Drop indexes -- Drop indexes
@ -26,275 +33,239 @@ ALTER TABLE "EvaluationForm" ADD CONSTRAINT "EvaluationForm_roundId_fkey"
-- ─── 2. FileRequirement ────────────────────────────────────────────────────── -- ─── 2. FileRequirement ──────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "FileRequirement" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "FileRequirement" DROP CONSTRAINT IF EXISTS "FileRequirement_stageId_fkey"; ALTER TABLE "FileRequirement" DROP CONSTRAINT IF EXISTS "FileRequirement_stageId_fkey";
-- Drop index
DROP INDEX IF EXISTS "FileRequirement_stageId_idx"; DROP INDEX IF EXISTS "FileRequirement_stageId_idx";
-- Rename column
ALTER TABLE "FileRequirement" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "FileRequirement" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "FileRequirement_roundId_idx" ON "FileRequirement"("roundId"); CREATE INDEX "FileRequirement_roundId_idx" ON "FileRequirement"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "FileRequirement" ADD CONSTRAINT "FileRequirement_roundId_fkey" ALTER TABLE "FileRequirement" ADD CONSTRAINT "FileRequirement_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 3. Assignment ─────────────────────────────────────────────────────────── -- ─── 3. Assignment ───────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "Assignment" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "Assignment" DROP CONSTRAINT IF EXISTS "Assignment_stageId_fkey"; ALTER TABLE "Assignment" DROP CONSTRAINT IF EXISTS "Assignment_stageId_fkey";
-- Drop indexes and unique constraint
DROP INDEX IF EXISTS "Assignment_userId_projectId_stageId_key"; DROP INDEX IF EXISTS "Assignment_userId_projectId_stageId_key";
DROP INDEX IF EXISTS "Assignment_stageId_idx"; DROP INDEX IF EXISTS "Assignment_stageId_idx";
-- Rename column
ALTER TABLE "Assignment" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "Assignment" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique constraint and index with new name
CREATE UNIQUE INDEX "Assignment_userId_projectId_roundId_key" ON "Assignment"("userId", "projectId", "roundId"); CREATE UNIQUE INDEX "Assignment_userId_projectId_roundId_key" ON "Assignment"("userId", "projectId", "roundId");
CREATE INDEX "Assignment_roundId_idx" ON "Assignment"("roundId"); CREATE INDEX "Assignment_roundId_idx" ON "Assignment"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_roundId_fkey" ALTER TABLE "Assignment" ADD CONSTRAINT "Assignment_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 4. GracePeriod ────────────────────────────────────────────────────────── -- ─── 4. GracePeriod ──────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "GracePeriod" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "GracePeriod" DROP CONSTRAINT IF EXISTS "GracePeriod_stageId_fkey"; ALTER TABLE "GracePeriod" DROP CONSTRAINT IF EXISTS "GracePeriod_stageId_fkey";
-- Drop indexes
DROP INDEX IF EXISTS "GracePeriod_stageId_idx"; DROP INDEX IF EXISTS "GracePeriod_stageId_idx";
DROP INDEX IF EXISTS "GracePeriod_stageId_userId_extendedUntil_idx"; DROP INDEX IF EXISTS "GracePeriod_stageId_userId_extendedUntil_idx";
-- Rename column
ALTER TABLE "GracePeriod" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "GracePeriod" RENAME COLUMN "stageId" TO "roundId";
-- Recreate indexes
CREATE INDEX "GracePeriod_roundId_idx" ON "GracePeriod"("roundId"); CREATE INDEX "GracePeriod_roundId_idx" ON "GracePeriod"("roundId");
CREATE INDEX "GracePeriod_roundId_userId_extendedUntil_idx" ON "GracePeriod"("roundId", "userId", "extendedUntil"); CREATE INDEX "GracePeriod_roundId_userId_extendedUntil_idx" ON "GracePeriod"("roundId", "userId", "extendedUntil");
-- Recreate FK pointing to Round
ALTER TABLE "GracePeriod" ADD CONSTRAINT "GracePeriod_roundId_fkey" ALTER TABLE "GracePeriod" ADD CONSTRAINT "GracePeriod_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 5. LiveVotingSession ──────────────────────────────────────────────────── -- ─── 5. LiveVotingSession ────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "LiveVotingSession" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "LiveVotingSession" DROP CONSTRAINT IF EXISTS "LiveVotingSession_stageId_fkey"; ALTER TABLE "LiveVotingSession" DROP CONSTRAINT IF EXISTS "LiveVotingSession_stageId_fkey";
-- Drop unique index
DROP INDEX IF EXISTS "LiveVotingSession_stageId_key"; DROP INDEX IF EXISTS "LiveVotingSession_stageId_key";
-- Rename column
ALTER TABLE "LiveVotingSession" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "LiveVotingSession" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique index
CREATE UNIQUE INDEX "LiveVotingSession_roundId_key" ON "LiveVotingSession"("roundId"); CREATE UNIQUE INDEX "LiveVotingSession_roundId_key" ON "LiveVotingSession"("roundId");
-- Recreate FK pointing to Round (nullable)
ALTER TABLE "LiveVotingSession" ADD CONSTRAINT "LiveVotingSession_roundId_fkey" ALTER TABLE "LiveVotingSession" ADD CONSTRAINT "LiveVotingSession_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 6. FilteringRule ──────────────────────────────────────────────────────── -- ─── 6. FilteringRule ────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "FilteringRule" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "FilteringRule" DROP CONSTRAINT IF EXISTS "FilteringRule_stageId_fkey"; ALTER TABLE "FilteringRule" DROP CONSTRAINT IF EXISTS "FilteringRule_stageId_fkey";
-- Drop index
DROP INDEX IF EXISTS "FilteringRule_stageId_idx"; DROP INDEX IF EXISTS "FilteringRule_stageId_idx";
-- Rename column
ALTER TABLE "FilteringRule" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "FilteringRule" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "FilteringRule_roundId_idx" ON "FilteringRule"("roundId"); CREATE INDEX "FilteringRule_roundId_idx" ON "FilteringRule"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "FilteringRule" ADD CONSTRAINT "FilteringRule_roundId_fkey" ALTER TABLE "FilteringRule" ADD CONSTRAINT "FilteringRule_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 7. FilteringResult ────────────────────────────────────────────────────── -- ─── 7. FilteringResult ──────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "FilteringResult" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "FilteringResult" DROP CONSTRAINT IF EXISTS "FilteringResult_stageId_fkey"; ALTER TABLE "FilteringResult" DROP CONSTRAINT IF EXISTS "FilteringResult_stageId_fkey";
-- Drop indexes and unique constraint
DROP INDEX IF EXISTS "FilteringResult_stageId_projectId_key"; DROP INDEX IF EXISTS "FilteringResult_stageId_projectId_key";
DROP INDEX IF EXISTS "FilteringResult_stageId_idx"; DROP INDEX IF EXISTS "FilteringResult_stageId_idx";
-- Rename column
ALTER TABLE "FilteringResult" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "FilteringResult" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique constraint and index
CREATE UNIQUE INDEX "FilteringResult_roundId_projectId_key" ON "FilteringResult"("roundId", "projectId"); CREATE UNIQUE INDEX "FilteringResult_roundId_projectId_key" ON "FilteringResult"("roundId", "projectId");
CREATE INDEX "FilteringResult_roundId_idx" ON "FilteringResult"("roundId"); CREATE INDEX "FilteringResult_roundId_idx" ON "FilteringResult"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "FilteringResult" ADD CONSTRAINT "FilteringResult_roundId_fkey" ALTER TABLE "FilteringResult" ADD CONSTRAINT "FilteringResult_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 8. FilteringJob ───────────────────────────────────────────────────────── -- ─── 8. FilteringJob ─────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "FilteringJob" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "FilteringJob" DROP CONSTRAINT IF EXISTS "FilteringJob_stageId_fkey"; ALTER TABLE "FilteringJob" DROP CONSTRAINT IF EXISTS "FilteringJob_stageId_fkey";
-- Drop index
DROP INDEX IF EXISTS "FilteringJob_stageId_idx"; DROP INDEX IF EXISTS "FilteringJob_stageId_idx";
-- Rename column
ALTER TABLE "FilteringJob" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "FilteringJob" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "FilteringJob_roundId_idx" ON "FilteringJob"("roundId"); CREATE INDEX "FilteringJob_roundId_idx" ON "FilteringJob"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "FilteringJob" ADD CONSTRAINT "FilteringJob_roundId_fkey" ALTER TABLE "FilteringJob" ADD CONSTRAINT "FilteringJob_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 9. AssignmentJob ──────────────────────────────────────────────────────── -- ─── 9. AssignmentJob ────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "AssignmentJob" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "AssignmentJob" DROP CONSTRAINT IF EXISTS "AssignmentJob_stageId_fkey"; ALTER TABLE "AssignmentJob" DROP CONSTRAINT IF EXISTS "AssignmentJob_stageId_fkey";
-- Drop index
DROP INDEX IF EXISTS "AssignmentJob_stageId_idx"; DROP INDEX IF EXISTS "AssignmentJob_stageId_idx";
-- Rename column
ALTER TABLE "AssignmentJob" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "AssignmentJob" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "AssignmentJob_roundId_idx" ON "AssignmentJob"("roundId"); CREATE INDEX "AssignmentJob_roundId_idx" ON "AssignmentJob"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "AssignmentJob" ADD CONSTRAINT "AssignmentJob_roundId_fkey" ALTER TABLE "AssignmentJob" ADD CONSTRAINT "AssignmentJob_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 10. ReminderLog ───────────────────────────────────────────────────────── -- ─── 10. ReminderLog ─────────────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "ReminderLog" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "ReminderLog" DROP CONSTRAINT IF EXISTS "ReminderLog_stageId_fkey"; ALTER TABLE "ReminderLog" DROP CONSTRAINT IF EXISTS "ReminderLog_stageId_fkey";
-- Drop indexes and unique constraint
DROP INDEX IF EXISTS "ReminderLog_stageId_userId_type_key"; DROP INDEX IF EXISTS "ReminderLog_stageId_userId_type_key";
DROP INDEX IF EXISTS "ReminderLog_stageId_idx"; DROP INDEX IF EXISTS "ReminderLog_stageId_idx";
-- Rename column
ALTER TABLE "ReminderLog" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "ReminderLog" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique constraint and index
CREATE UNIQUE INDEX "ReminderLog_roundId_userId_type_key" ON "ReminderLog"("roundId", "userId", "type"); CREATE UNIQUE INDEX "ReminderLog_roundId_userId_type_key" ON "ReminderLog"("roundId", "userId", "type");
CREATE INDEX "ReminderLog_roundId_idx" ON "ReminderLog"("roundId"); CREATE INDEX "ReminderLog_roundId_idx" ON "ReminderLog"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "ReminderLog" ADD CONSTRAINT "ReminderLog_roundId_fkey" ALTER TABLE "ReminderLog" ADD CONSTRAINT "ReminderLog_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 11. EvaluationSummary ─────────────────────────────────────────────────── -- ─── 11. EvaluationSummary ───────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "EvaluationSummary" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "EvaluationSummary" DROP CONSTRAINT IF EXISTS "EvaluationSummary_stageId_fkey"; ALTER TABLE "EvaluationSummary" DROP CONSTRAINT IF EXISTS "EvaluationSummary_stageId_fkey";
-- Drop indexes and unique constraint
DROP INDEX IF EXISTS "EvaluationSummary_projectId_stageId_key"; DROP INDEX IF EXISTS "EvaluationSummary_projectId_stageId_key";
DROP INDEX IF EXISTS "EvaluationSummary_stageId_idx"; DROP INDEX IF EXISTS "EvaluationSummary_stageId_idx";
-- Rename column
ALTER TABLE "EvaluationSummary" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "EvaluationSummary" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique constraint and index
CREATE UNIQUE INDEX "EvaluationSummary_projectId_roundId_key" ON "EvaluationSummary"("projectId", "roundId"); CREATE UNIQUE INDEX "EvaluationSummary_projectId_roundId_key" ON "EvaluationSummary"("projectId", "roundId");
CREATE INDEX "EvaluationSummary_roundId_idx" ON "EvaluationSummary"("roundId"); CREATE INDEX "EvaluationSummary_roundId_idx" ON "EvaluationSummary"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "EvaluationSummary" ADD CONSTRAINT "EvaluationSummary_roundId_fkey" ALTER TABLE "EvaluationSummary" ADD CONSTRAINT "EvaluationSummary_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 12. EvaluationDiscussion ──────────────────────────────────────────────── -- ─── 12. EvaluationDiscussion ────────────────────────────────────────────────
-- Drop FK constraint ALTER TABLE "EvaluationDiscussion" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "EvaluationDiscussion" DROP CONSTRAINT IF EXISTS "EvaluationDiscussion_stageId_fkey"; ALTER TABLE "EvaluationDiscussion" DROP CONSTRAINT IF EXISTS "EvaluationDiscussion_stageId_fkey";
-- Drop indexes and unique constraint
DROP INDEX IF EXISTS "EvaluationDiscussion_projectId_stageId_key"; DROP INDEX IF EXISTS "EvaluationDiscussion_projectId_stageId_key";
DROP INDEX IF EXISTS "EvaluationDiscussion_stageId_idx"; DROP INDEX IF EXISTS "EvaluationDiscussion_stageId_idx";
-- Rename column
ALTER TABLE "EvaluationDiscussion" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "EvaluationDiscussion" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique constraint and index
CREATE UNIQUE INDEX "EvaluationDiscussion_projectId_roundId_key" ON "EvaluationDiscussion"("projectId", "roundId"); CREATE UNIQUE INDEX "EvaluationDiscussion_projectId_roundId_key" ON "EvaluationDiscussion"("projectId", "roundId");
CREATE INDEX "EvaluationDiscussion_roundId_idx" ON "EvaluationDiscussion"("roundId"); CREATE INDEX "EvaluationDiscussion_roundId_idx" ON "EvaluationDiscussion"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "EvaluationDiscussion" ADD CONSTRAINT "EvaluationDiscussion_roundId_fkey" ALTER TABLE "EvaluationDiscussion" ADD CONSTRAINT "EvaluationDiscussion_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 13. Message ───────────────────────────────────────────────────────────── -- ─── 13. Message ─────────────────────────────────────────────────────────────
-- Drop FK constraint -- Message has roundId (from init, nullable) and stageId (from pipeline, nullable)
ALTER TABLE "Message" DROP COLUMN IF EXISTS "roundId";
ALTER TABLE "Message" DROP CONSTRAINT IF EXISTS "Message_stageId_fkey"; ALTER TABLE "Message" DROP CONSTRAINT IF EXISTS "Message_stageId_fkey";
-- Drop index
DROP INDEX IF EXISTS "Message_stageId_idx"; DROP INDEX IF EXISTS "Message_stageId_idx";
-- Rename column (nullable, so SET NULL on delete)
ALTER TABLE "Message" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "Message" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "Message_roundId_idx" ON "Message"("roundId"); CREATE INDEX "Message_roundId_idx" ON "Message"("roundId");
-- Recreate FK pointing to Round with SET NULL
ALTER TABLE "Message" ADD CONSTRAINT "Message_roundId_fkey" ALTER TABLE "Message" ADD CONSTRAINT "Message_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE SET NULL ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE SET NULL ON UPDATE CASCADE;
-- ─── 14. Cohort ────────────────────────────────────────────────────────────── -- ─── 14. Cohort ──────────────────────────────────────────────────────────────
-- Cohort was created in pipeline migration with stageId only (no roundId)
-- Drop FK constraint
ALTER TABLE "Cohort" DROP CONSTRAINT IF EXISTS "Cohort_stageId_fkey"; ALTER TABLE "Cohort" DROP CONSTRAINT IF EXISTS "Cohort_stageId_fkey";
-- Drop indexes
DROP INDEX IF EXISTS "Cohort_stageId_idx"; DROP INDEX IF EXISTS "Cohort_stageId_idx";
-- Rename column
ALTER TABLE "Cohort" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "Cohort" RENAME COLUMN "stageId" TO "roundId";
-- Recreate index
CREATE INDEX "Cohort_roundId_idx" ON "Cohort"("roundId"); CREATE INDEX "Cohort_roundId_idx" ON "Cohort"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "Cohort" ADD CONSTRAINT "Cohort_roundId_fkey" ALTER TABLE "Cohort" ADD CONSTRAINT "Cohort_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 15. LiveProgressCursor ────────────────────────────────────────────────── -- ─── 15. LiveProgressCursor ──────────────────────────────────────────────────
-- LiveProgressCursor was created in pipeline migration with stageId only (no roundId)
-- Drop FK constraint
ALTER TABLE "LiveProgressCursor" DROP CONSTRAINT IF EXISTS "LiveProgressCursor_stageId_fkey"; ALTER TABLE "LiveProgressCursor" DROP CONSTRAINT IF EXISTS "LiveProgressCursor_stageId_fkey";
-- Drop unique index
DROP INDEX IF EXISTS "LiveProgressCursor_stageId_key"; DROP INDEX IF EXISTS "LiveProgressCursor_stageId_key";
-- Rename column
ALTER TABLE "LiveProgressCursor" RENAME COLUMN "stageId" TO "roundId"; ALTER TABLE "LiveProgressCursor" RENAME COLUMN "stageId" TO "roundId";
-- Recreate unique index
CREATE UNIQUE INDEX "LiveProgressCursor_roundId_key" ON "LiveProgressCursor"("roundId"); CREATE UNIQUE INDEX "LiveProgressCursor_roundId_key" ON "LiveProgressCursor"("roundId");
-- Recreate FK pointing to Round
ALTER TABLE "LiveProgressCursor" ADD CONSTRAINT "LiveProgressCursor_roundId_fkey" ALTER TABLE "LiveProgressCursor" ADD CONSTRAINT "LiveProgressCursor_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 16. SpecialAward: Drop trackId column ─────────────────────────────────── -- ─── 16. SpecialAward: Drop trackId column ───────────────────────────────────
-- Drop FK constraint
ALTER TABLE "SpecialAward" DROP CONSTRAINT IF EXISTS "SpecialAward_trackId_fkey"; ALTER TABLE "SpecialAward" DROP CONSTRAINT IF EXISTS "SpecialAward_trackId_fkey";
-- Drop unique index
DROP INDEX IF EXISTS "SpecialAward_trackId_key"; DROP INDEX IF EXISTS "SpecialAward_trackId_key";
-- Drop column
ALTER TABLE "SpecialAward" DROP COLUMN IF EXISTS "trackId"; ALTER TABLE "SpecialAward" DROP COLUMN IF EXISTS "trackId";
-- ─── 17. ConflictOfInterest: roundId was made nullable in pipeline migration ─
-- It still exists, just restore FK to new Round table
ALTER TABLE "ConflictOfInterest" ADD CONSTRAINT "ConflictOfInterest_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- ─── 18. TaggingJob: roundId was made nullable in pipeline migration ─────────
-- Restore FK to new Round table
ALTER TABLE "TaggingJob" ADD CONSTRAINT "TaggingJob_roundId_fkey"
FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE SET NULL ON UPDATE CASCADE;