all the haul
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
-- Rename the misspelled column serverityId -> severityId on ServiceTicket
|
||||
ALTER TABLE "ServiceTicket" RENAME COLUMN "serverityId" TO "severityId";
|
||||
@@ -0,0 +1,41 @@
|
||||
-- CreateEnum
|
||||
CREATE TYPE "SyncJobType" AS ENUM ('FULL_SYNC', 'INCREMENTAL_SYNC');
|
||||
|
||||
-- CreateEnum
|
||||
CREATE TYPE "SyncJobStatus" AS ENUM ('QUEUED', 'RUNNING', 'COMPLETED', 'FAILED', 'TIMED_OUT');
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "SyncJobRun" (
|
||||
"id" TEXT NOT NULL,
|
||||
"jobType" "SyncJobType" NOT NULL,
|
||||
"status" "SyncJobStatus" NOT NULL DEFAULT 'QUEUED',
|
||||
"triggeredBy" TEXT NOT NULL DEFAULT 'system',
|
||||
"startedAt" TIMESTAMP(3),
|
||||
"completedAt" TIMESTAMP(3),
|
||||
"errorSummary" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "SyncJobRun_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- CreateTable
|
||||
CREATE TABLE "SyncStepLog" (
|
||||
"id" TEXT NOT NULL,
|
||||
"syncJobRunId" TEXT NOT NULL,
|
||||
"tableName" TEXT NOT NULL,
|
||||
"syncMode" TEXT NOT NULL,
|
||||
"recordsProcessed" INTEGER NOT NULL DEFAULT 0,
|
||||
"recordsInserted" INTEGER NOT NULL DEFAULT 0,
|
||||
"recordsSkipped" INTEGER NOT NULL DEFAULT 0,
|
||||
"recordsFailed" INTEGER NOT NULL DEFAULT 0,
|
||||
"recordsDeleted" INTEGER NOT NULL DEFAULT 0,
|
||||
"sampleErrors" JSONB NOT NULL DEFAULT '[]',
|
||||
"durationMs" INTEGER NOT NULL DEFAULT 0,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
|
||||
CONSTRAINT "SyncStepLog_pkey" PRIMARY KEY ("id")
|
||||
);
|
||||
|
||||
-- AddForeignKey
|
||||
ALTER TABLE "SyncStepLog" ADD CONSTRAINT "SyncStepLog_syncJobRunId_fkey" FOREIGN KEY ("syncJobRunId") REFERENCES "SyncJobRun"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||||
@@ -0,0 +1,47 @@
|
||||
-- CreateTable (idempotent)
|
||||
CREATE TABLE IF NOT EXISTS "OpportunityStage" (
|
||||
"uid" TEXT NOT NULL,
|
||||
"id" INTEGER NOT NULL,
|
||||
"name" TEXT NOT NULL,
|
||||
"seqNbr" INTEGER,
|
||||
"funnelColor" TEXT,
|
||||
"updatedById" TEXT,
|
||||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||||
|
||||
CONSTRAINT "OpportunityStage_pkey" PRIMARY KEY ("uid")
|
||||
);
|
||||
|
||||
-- CreateIndex (idempotent)
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS "OpportunityStage_id_key" ON "OpportunityStage"("id");
|
||||
|
||||
-- AlterTable: drop old columns if they exist, add stageId if it doesn't
|
||||
DO $$
|
||||
BEGIN
|
||||
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageName') THEN
|
||||
ALTER TABLE "Opportunity" DROP COLUMN "stageName";
|
||||
END IF;
|
||||
IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageCwId') THEN
|
||||
ALTER TABLE "Opportunity" DROP COLUMN "stageCwId";
|
||||
END IF;
|
||||
IF NOT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name = 'Opportunity' AND column_name = 'stageId') THEN
|
||||
ALTER TABLE "Opportunity" ADD COLUMN "stageId" INTEGER;
|
||||
END IF;
|
||||
END $$;
|
||||
|
||||
-- Nullify any stageId values that reference non-existent OpportunityStage rows
|
||||
UPDATE "Opportunity" SET "stageId" = NULL
|
||||
WHERE "stageId" IS NOT NULL
|
||||
AND "stageId" NOT IN (SELECT "id" FROM "OpportunityStage");
|
||||
|
||||
-- AddForeignKey (skip if already exists)
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.table_constraints
|
||||
WHERE constraint_name = 'Opportunity_stageId_fkey'
|
||||
) THEN
|
||||
ALTER TABLE "Opportunity" ADD CONSTRAINT "Opportunity_stageId_fkey"
|
||||
FOREIGN KEY ("stageId") REFERENCES "OpportunityStage"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||||
END IF;
|
||||
END $$;
|
||||
Reference in New Issue
Block a user