letsbe-hub/prisma/migrations/20260111201955_add_intellig.../migration.sql

85 lines
3.2 KiB
MySQL
Raw Permalink Normal View History

-- CreateEnum
CREATE TYPE "ContainerEventType" AS ENUM ('CRASH', 'OOM_KILLED', 'RESTART', 'STOPPED');
-- CreateTable
CREATE TABLE "log_scan_positions" (
"id" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"container_id" TEXT NOT NULL,
"last_line_count" INTEGER NOT NULL DEFAULT 0,
"last_log_hash" TEXT,
"last_scanned_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "log_scan_positions_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "container_state_snapshots" (
"id" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"container_id" TEXT NOT NULL,
"container_name" TEXT NOT NULL,
"state" TEXT NOT NULL,
"exit_code" INTEGER,
"captured_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "container_state_snapshots_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "container_events" (
"id" TEXT NOT NULL,
"server_id" TEXT NOT NULL,
"container_id" TEXT NOT NULL,
"container_name" TEXT NOT NULL,
"event_type" "ContainerEventType" NOT NULL,
"exit_code" INTEGER,
"details" TEXT,
"acknowledged_at" TIMESTAMP(3),
"acknowledged_by" TEXT,
"timestamp" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT "container_events_pkey" PRIMARY KEY ("id")
);
-- CreateTable
CREATE TABLE "notification_settings" (
"id" TEXT NOT NULL,
"client_id" TEXT NOT NULL,
"enabled" BOOLEAN NOT NULL DEFAULT false,
"critical_errors_only" BOOLEAN NOT NULL DEFAULT true,
"container_crashes" BOOLEAN NOT NULL DEFAULT true,
"recipients" TEXT[] DEFAULT ARRAY[]::TEXT[],
"cooldown_minutes" INTEGER NOT NULL DEFAULT 30,
"last_notified_at" TIMESTAMP(3),
CONSTRAINT "notification_settings_pkey" PRIMARY KEY ("id")
);
-- CreateIndex
CREATE UNIQUE INDEX "log_scan_positions_server_id_container_id_key" ON "log_scan_positions"("server_id", "container_id");
-- CreateIndex
CREATE INDEX "container_state_snapshots_server_id_container_id_captured_a_idx" ON "container_state_snapshots"("server_id", "container_id", "captured_at");
-- CreateIndex
CREATE INDEX "container_events_server_id_timestamp_idx" ON "container_events"("server_id", "timestamp");
-- CreateIndex
CREATE INDEX "container_events_event_type_acknowledged_at_idx" ON "container_events"("event_type", "acknowledged_at");
-- CreateIndex
CREATE UNIQUE INDEX "notification_settings_client_id_key" ON "notification_settings"("client_id");
-- AddForeignKey
ALTER TABLE "log_scan_positions" ADD CONSTRAINT "log_scan_positions_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "container_state_snapshots" ADD CONSTRAINT "container_state_snapshots_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "container_events" ADD CONSTRAINT "container_events_server_id_fkey" FOREIGN KEY ("server_id") REFERENCES "enterprise_servers"("id") ON DELETE CASCADE ON UPDATE CASCADE;
-- AddForeignKey
ALTER TABLE "notification_settings" ADD CONSTRAINT "notification_settings_client_id_fkey" FOREIGN KEY ("client_id") REFERENCES "enterprise_clients"("id") ON DELETE CASCADE ON UPDATE CASCADE;