-- Reconciliation migration: Add missing foreign keys and indexes -- The add_15_features migration omitted some FKs and indexes that the schema expects -- This migration brings the database in line with the Prisma schema -- ===================================================== -- Missing Foreign Keys -- ===================================================== -- RoundTemplate → Program ALTER TABLE "RoundTemplate" ADD CONSTRAINT "RoundTemplate_programId_fkey" FOREIGN KEY ("programId") REFERENCES "Program"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- RoundTemplate → User (creator) ALTER TABLE "RoundTemplate" ADD CONSTRAINT "RoundTemplate_createdBy_fkey" FOREIGN KEY ("createdBy") REFERENCES "User"("id") ON DELETE RESTRICT ON UPDATE CASCADE; -- Message → Round ALTER TABLE "Message" ADD CONSTRAINT "Message_roundId_fkey" FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- EvaluationDiscussion → Round ALTER TABLE "EvaluationDiscussion" ADD CONSTRAINT "EvaluationDiscussion_roundId_fkey" FOREIGN KEY ("roundId") REFERENCES "Round"("id") ON DELETE CASCADE ON UPDATE CASCADE; -- ProjectFile → ProjectFile (self-relation for file versioning) ALTER TABLE "ProjectFile" ADD CONSTRAINT "ProjectFile_replacedById_fkey" FOREIGN KEY ("replacedById") REFERENCES "ProjectFile"("id") ON DELETE SET NULL ON UPDATE CASCADE; -- ===================================================== -- Missing Indexes -- ===================================================== CREATE INDEX "RoundTemplate_roundType_idx" ON "RoundTemplate"("roundType"); CREATE INDEX "MentorNote_authorId_idx" ON "MentorNote"("authorId"); CREATE INDEX "MentorMilestoneCompletion_completedById_idx" ON "MentorMilestoneCompletion"("completedById"); CREATE INDEX "Webhook_createdById_idx" ON "Webhook"("createdById"); CREATE INDEX "WebhookDelivery_event_idx" ON "WebhookDelivery"("event"); CREATE INDEX "Message_roundId_idx" ON "Message"("roundId"); CREATE INDEX "EvaluationDiscussion_closedById_idx" ON "EvaluationDiscussion"("closedById"); CREATE INDEX "DiscussionComment_discussionId_idx" ON "DiscussionComment"("discussionId"); CREATE INDEX "DiscussionComment_userId_idx" ON "DiscussionComment"("userId");