77 lines
2.6 KiB
SQL
77 lines
2.6 KiB
SQL
-- AlterTable: Add missionId column if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM information_schema.columns
|
|
WHERE table_name = 'Calendar' AND column_name = 'missionId'
|
|
) THEN
|
|
ALTER TABLE "Calendar" ADD COLUMN "missionId" TEXT;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- CreateTable: Create CalendarSync table if it doesn't exist
|
|
CREATE TABLE IF NOT EXISTS "CalendarSync" (
|
|
"id" TEXT NOT NULL,
|
|
"calendarId" TEXT NOT NULL,
|
|
"mailCredentialId" TEXT,
|
|
"provider" TEXT NOT NULL,
|
|
"externalCalendarId" TEXT,
|
|
"externalCalendarUrl" TEXT,
|
|
"syncEnabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"lastSyncAt" TIMESTAMP(3),
|
|
"syncFrequency" INTEGER NOT NULL DEFAULT 15,
|
|
"lastSyncError" TEXT,
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "CalendarSync_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX IF NOT EXISTS "CalendarSync_calendarId_key" ON "CalendarSync"("calendarId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX IF NOT EXISTS "CalendarSync_calendarId_idx" ON "CalendarSync"("calendarId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX IF NOT EXISTS "CalendarSync_mailCredentialId_idx" ON "CalendarSync"("mailCredentialId");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX IF NOT EXISTS "CalendarSync_provider_idx" ON "CalendarSync"("provider");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX IF NOT EXISTS "Calendar_missionId_idx" ON "Calendar"("missionId");
|
|
|
|
-- AddForeignKey: Add Calendar_missionId_fkey if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint
|
|
WHERE conname = 'Calendar_missionId_fkey'
|
|
) THEN
|
|
ALTER TABLE "Calendar" ADD CONSTRAINT "Calendar_missionId_fkey" FOREIGN KEY ("missionId") REFERENCES "Mission"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- AddForeignKey: Add CalendarSync_calendarId_fkey if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint
|
|
WHERE conname = 'CalendarSync_calendarId_fkey'
|
|
) THEN
|
|
ALTER TABLE "CalendarSync" ADD CONSTRAINT "CalendarSync_calendarId_fkey" FOREIGN KEY ("calendarId") REFERENCES "Calendar"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
END IF;
|
|
END $$;
|
|
|
|
-- AddForeignKey: Add CalendarSync_mailCredentialId_fkey if it doesn't exist
|
|
DO $$
|
|
BEGIN
|
|
IF NOT EXISTS (
|
|
SELECT 1 FROM pg_constraint
|
|
WHERE conname = 'CalendarSync_mailCredentialId_fkey'
|
|
) THEN
|
|
ALTER TABLE "CalendarSync" ADD CONSTRAINT "CalendarSync_mailCredentialId_fkey" FOREIGN KEY ("mailCredentialId") REFERENCES "MailCredentials"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
END IF;
|
|
END $$;
|