mirror of
https://github.com/KLogicHQ/nats-console.git
synced 2026-10-12 15:58:05 +00:00
430 lines
15 KiB
SQL
430 lines
15 KiB
SQL
-- CreateEnum
|
|
CREATE TYPE "OrganizationPlan" AS ENUM ('free', 'pro', 'enterprise');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "UserStatus" AS ENUM ('active', 'inactive', 'suspended');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "MemberRole" AS ENUM ('owner', 'admin', 'member', 'viewer');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ClusterEnvironment" AS ENUM ('development', 'staging', 'production');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "ClusterStatus" AS ENUM ('connected', 'disconnected', 'degraded');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "HealthStatus" AS ENUM ('healthy', 'unhealthy', 'unknown');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "AlertSeverity" AS ENUM ('info', 'warning', 'critical');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "NotificationChannelType" AS ENUM ('slack', 'email', 'teams', 'pagerduty', 'google_chat', 'webhook');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "IncidentStatus" AS ENUM ('open', 'acknowledged', 'resolved', 'closed');
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "InviteStatus" AS ENUM ('pending', 'accepted', 'expired', 'revoked');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "users" (
|
|
"id" UUID NOT NULL,
|
|
"email" VARCHAR(255) NOT NULL,
|
|
"password_hash" VARCHAR(255) NOT NULL,
|
|
"first_name" VARCHAR(100),
|
|
"last_name" VARCHAR(100),
|
|
"avatar_url" VARCHAR(500),
|
|
"status" "UserStatus" NOT NULL DEFAULT 'active',
|
|
"email_verified" BOOLEAN NOT NULL DEFAULT false,
|
|
"mfa_enabled" BOOLEAN NOT NULL DEFAULT false,
|
|
"mfa_secret" VARCHAR(255),
|
|
"settings" JSONB NOT NULL DEFAULT '{}',
|
|
"last_login_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "organizations" (
|
|
"id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"slug" VARCHAR(50) NOT NULL,
|
|
"plan" "OrganizationPlan" NOT NULL DEFAULT 'free',
|
|
"settings" JSONB NOT NULL DEFAULT '{}',
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "organizations_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "organization_members" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"role" "MemberRole" NOT NULL DEFAULT 'member',
|
|
"invited_by" UUID,
|
|
"joined_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "organization_members_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "teams" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"description" TEXT,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "teams_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "team_members" (
|
|
"id" UUID NOT NULL,
|
|
"team_id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"role" "MemberRole" NOT NULL DEFAULT 'member',
|
|
"added_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "team_members_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "nats_clusters" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"description" TEXT,
|
|
"environment" "ClusterEnvironment" NOT NULL DEFAULT 'development',
|
|
"status" "ClusterStatus" NOT NULL DEFAULT 'disconnected',
|
|
"version" VARCHAR(50),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "nats_clusters_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "cluster_connections" (
|
|
"id" UUID NOT NULL,
|
|
"cluster_id" UUID NOT NULL,
|
|
"server_url" VARCHAR(500) NOT NULL,
|
|
"credentials" JSONB,
|
|
"tls_config" JSONB,
|
|
"is_primary" BOOLEAN NOT NULL DEFAULT false,
|
|
"health_status" "HealthStatus" NOT NULL DEFAULT 'unknown',
|
|
"last_health_check" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "cluster_connections_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "stream_configs" (
|
|
"id" UUID NOT NULL,
|
|
"cluster_id" UUID NOT NULL,
|
|
"stream_name" VARCHAR(256) NOT NULL,
|
|
"config_snapshot" JSONB NOT NULL,
|
|
"created_by" UUID NOT NULL,
|
|
"is_managed" BOOLEAN NOT NULL DEFAULT true,
|
|
"tags" JSONB NOT NULL DEFAULT '[]',
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "stream_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "consumer_configs" (
|
|
"id" UUID NOT NULL,
|
|
"stream_config_id" UUID NOT NULL,
|
|
"consumer_name" VARCHAR(256) NOT NULL,
|
|
"config_snapshot" JSONB NOT NULL,
|
|
"created_by" UUID NOT NULL,
|
|
"is_managed" BOOLEAN NOT NULL DEFAULT true,
|
|
"tags" JSONB NOT NULL DEFAULT '[]',
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "consumer_configs_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "roles" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"description" TEXT,
|
|
"is_system" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "roles_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "permissions" (
|
|
"id" UUID NOT NULL,
|
|
"role_id" UUID NOT NULL,
|
|
"resource" VARCHAR(100) NOT NULL,
|
|
"action" VARCHAR(100) NOT NULL,
|
|
"conditions" JSONB,
|
|
|
|
CONSTRAINT "permissions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "sessions" (
|
|
"id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"token_hash" VARCHAR(255) NOT NULL,
|
|
"ip_address" INET,
|
|
"user_agent" TEXT,
|
|
"expires_at" TIMESTAMP(3) NOT NULL,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "sessions_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "api_keys" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"key_hash" VARCHAR(255) NOT NULL,
|
|
"prefix" VARCHAR(10) NOT NULL,
|
|
"permissions" JSONB NOT NULL DEFAULT '[]',
|
|
"last_used_at" TIMESTAMP(3),
|
|
"expires_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "api_keys_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dashboards" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"description" TEXT,
|
|
"layout" JSONB NOT NULL DEFAULT '{"columns": 12, "rowHeight": 80}',
|
|
"widgets" JSONB NOT NULL DEFAULT '[]',
|
|
"is_shared" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "dashboards_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "saved_queries" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"user_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"query" TEXT NOT NULL,
|
|
"description" TEXT,
|
|
"is_shared" BOOLEAN NOT NULL DEFAULT false,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "saved_queries_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "notification_channels" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"type" "NotificationChannelType" NOT NULL,
|
|
"config" JSONB NOT NULL,
|
|
"is_enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "notification_channels_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "alert_rules" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"cluster_id" UUID,
|
|
"name" VARCHAR(100) NOT NULL,
|
|
"condition" JSONB NOT NULL,
|
|
"threshold" JSONB NOT NULL,
|
|
"severity" "AlertSeverity" NOT NULL DEFAULT 'warning',
|
|
"is_enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
"cooldown_mins" INTEGER NOT NULL DEFAULT 5,
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "alert_rules_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "alert_rule_notification_channels" (
|
|
"id" UUID NOT NULL,
|
|
"rule_id" UUID NOT NULL,
|
|
"channel_id" UUID NOT NULL,
|
|
|
|
CONSTRAINT "alert_rule_notification_channels_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "alert_incidents" (
|
|
"id" UUID NOT NULL,
|
|
"rule_id" UUID NOT NULL,
|
|
"status" "IncidentStatus" NOT NULL DEFAULT 'open',
|
|
"triggered_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"acknowledged_at" TIMESTAMP(3),
|
|
"resolved_at" TIMESTAMP(3),
|
|
"closed_at" TIMESTAMP(3),
|
|
"metadata" JSONB NOT NULL DEFAULT '{}',
|
|
"notified_at" TIMESTAMP(3),
|
|
|
|
CONSTRAINT "alert_incidents_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "invites" (
|
|
"id" UUID NOT NULL,
|
|
"org_id" UUID NOT NULL,
|
|
"email" VARCHAR(255) NOT NULL,
|
|
"role" "MemberRole" NOT NULL DEFAULT 'member',
|
|
"token" VARCHAR(255) NOT NULL,
|
|
"status" "InviteStatus" NOT NULL DEFAULT 'pending',
|
|
"invited_by" UUID NOT NULL,
|
|
"expires_at" TIMESTAMP(3) NOT NULL,
|
|
"accepted_at" TIMESTAMP(3),
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "invites_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "organizations_slug_key" ON "organizations"("slug");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "organization_members_org_id_user_id_key" ON "organization_members"("org_id", "user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "team_members_team_id_user_id_key" ON "team_members"("team_id", "user_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "stream_configs_cluster_id_stream_name_key" ON "stream_configs"("cluster_id", "stream_name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "consumer_configs_stream_config_id_consumer_name_key" ON "consumer_configs"("stream_config_id", "consumer_name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "roles_org_id_name_key" ON "roles"("org_id", "name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "alert_rule_notification_channels_rule_id_channel_id_key" ON "alert_rule_notification_channels"("rule_id", "channel_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "alert_incidents_rule_id_status_idx" ON "alert_incidents"("rule_id", "status");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "invites_token_key" ON "invites"("token");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "organization_members" ADD CONSTRAINT "organization_members_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "organization_members" ADD CONSTRAINT "organization_members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "organization_members" ADD CONSTRAINT "organization_members_invited_by_fkey" FOREIGN KEY ("invited_by") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "teams" ADD CONSTRAINT "teams_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "team_members" ADD CONSTRAINT "team_members_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "team_members" ADD CONSTRAINT "team_members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "nats_clusters" ADD CONSTRAINT "nats_clusters_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "cluster_connections" ADD CONSTRAINT "cluster_connections_cluster_id_fkey" FOREIGN KEY ("cluster_id") REFERENCES "nats_clusters"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "stream_configs" ADD CONSTRAINT "stream_configs_cluster_id_fkey" FOREIGN KEY ("cluster_id") REFERENCES "nats_clusters"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "stream_configs" ADD CONSTRAINT "stream_configs_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "consumer_configs" ADD CONSTRAINT "consumer_configs_stream_config_id_fkey" FOREIGN KEY ("stream_config_id") REFERENCES "stream_configs"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "consumer_configs" ADD CONSTRAINT "consumer_configs_created_by_fkey" FOREIGN KEY ("created_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "roles" ADD CONSTRAINT "roles_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "permissions" ADD CONSTRAINT "permissions_role_id_fkey" FOREIGN KEY ("role_id") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "sessions" ADD CONSTRAINT "sessions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "api_keys" ADD CONSTRAINT "api_keys_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dashboards" ADD CONSTRAINT "dashboards_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dashboards" ADD CONSTRAINT "dashboards_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "saved_queries" ADD CONSTRAINT "saved_queries_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "saved_queries" ADD CONSTRAINT "saved_queries_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "notification_channels" ADD CONSTRAINT "notification_channels_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "alert_rules" ADD CONSTRAINT "alert_rules_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "alert_rules" ADD CONSTRAINT "alert_rules_cluster_id_fkey" FOREIGN KEY ("cluster_id") REFERENCES "nats_clusters"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "alert_rule_notification_channels" ADD CONSTRAINT "alert_rule_notification_channels_rule_id_fkey" FOREIGN KEY ("rule_id") REFERENCES "alert_rules"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "alert_rule_notification_channels" ADD CONSTRAINT "alert_rule_notification_channels_channel_id_fkey" FOREIGN KEY ("channel_id") REFERENCES "notification_channels"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "alert_incidents" ADD CONSTRAINT "alert_incidents_rule_id_fkey" FOREIGN KEY ("rule_id") REFERENCES "alert_rules"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "invites" ADD CONSTRAINT "invites_org_id_fkey" FOREIGN KEY ("org_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "invites" ADD CONSTRAINT "invites_invited_by_fkey" FOREIGN KEY ("invited_by") REFERENCES "users"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|