693 lines
22 KiB
MySQL
693 lines
22 KiB
MySQL
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "users" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"username" TEXT,
|
||
|
|
"display_username" TEXT,
|
||
|
|
"email" TEXT NOT NULL,
|
||
|
|
"emailVerified" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"image" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"password" TEXT,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
"organization_id" TEXT,
|
||
|
|
"metadata" JSONB,
|
||
|
|
|
||
|
|
CONSTRAINT "users_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "organizations" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"slug" TEXT,
|
||
|
|
"description" TEXT,
|
||
|
|
"logo" TEXT,
|
||
|
|
"parent_id" TEXT,
|
||
|
|
"path" TEXT,
|
||
|
|
"level" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"order" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
"metadata" JSONB,
|
||
|
|
|
||
|
|
CONSTRAINT "organizations_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "posts" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"type" TEXT NOT NULL,
|
||
|
|
"title" TEXT NOT NULL,
|
||
|
|
"content" TEXT,
|
||
|
|
"excerpt" TEXT,
|
||
|
|
"parent_id" TEXT,
|
||
|
|
"path" TEXT,
|
||
|
|
"level" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"order" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||
|
|
"status" TEXT NOT NULL,
|
||
|
|
"publishedAt" TIMESTAMP(3),
|
||
|
|
"visibility" TEXT NOT NULL DEFAULT 'public',
|
||
|
|
"viewCount" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"likeCount" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"startCount" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"commentCount" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"author_id" TEXT,
|
||
|
|
"organization_id" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
"metadata" JSONB,
|
||
|
|
|
||
|
|
CONSTRAINT "posts_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "taxonomies" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"slug" TEXT NOT NULL,
|
||
|
|
"description" TEXT,
|
||
|
|
"postTypes" TEXT[] DEFAULT ARRAY[]::TEXT[],
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
|
||
|
|
CONSTRAINT "taxonomies_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "terms" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"slug" TEXT NOT NULL,
|
||
|
|
"description" TEXT,
|
||
|
|
"parent_id" TEXT,
|
||
|
|
"path" TEXT,
|
||
|
|
"level" INTEGER NOT NULL DEFAULT 0,
|
||
|
|
"order" DOUBLE PRECISION NOT NULL DEFAULT 0,
|
||
|
|
"taxonomy_id" TEXT NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
|
||
|
|
CONSTRAINT "terms_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "roles" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"slug" TEXT NOT NULL,
|
||
|
|
"description" TEXT,
|
||
|
|
"permissions" TEXT[],
|
||
|
|
"isSystem" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"isActive" BOOLEAN NOT NULL DEFAULT true,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "roles_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "user_actions" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"user_id" TEXT,
|
||
|
|
"post_id" TEXT,
|
||
|
|
"type" TEXT NOT NULL,
|
||
|
|
"description" TEXT,
|
||
|
|
"metadata" TEXT,
|
||
|
|
"ipAddress" TEXT,
|
||
|
|
"userAgent" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "user_actions_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "system_configs" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"key" TEXT NOT NULL,
|
||
|
|
"value" TEXT NOT NULL,
|
||
|
|
"type" TEXT NOT NULL DEFAULT 'string',
|
||
|
|
"description" TEXT,
|
||
|
|
"group" TEXT,
|
||
|
|
"isPublic" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "system_configs_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "profiles" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"gender" INTEGER NOT NULL,
|
||
|
|
"idNum" TEXT NOT NULL,
|
||
|
|
"paperId" TEXT,
|
||
|
|
"avatar" TEXT,
|
||
|
|
"command" TEXT,
|
||
|
|
"birthday" TIMESTAMP(3),
|
||
|
|
"hireDate" TIMESTAMP(3),
|
||
|
|
"relativeHireDate" TIMESTAMP(3),
|
||
|
|
"identity" TEXT,
|
||
|
|
"level" TEXT,
|
||
|
|
"levelDate" TIMESTAMP(3),
|
||
|
|
"dutyCode" TEXT NOT NULL,
|
||
|
|
"dutyLevel" INTEGER NOT NULL,
|
||
|
|
"dutyName" TEXT NOT NULL,
|
||
|
|
"organization_id" TEXT NOT NULL,
|
||
|
|
"metadata" JSONB,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"deletedAt" TIMESTAMP(3),
|
||
|
|
|
||
|
|
CONSTRAINT "profiles_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "resource" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"title" TEXT,
|
||
|
|
"description" TEXT,
|
||
|
|
"type" TEXT,
|
||
|
|
"fileId" TEXT,
|
||
|
|
"url" TEXT,
|
||
|
|
"meta" JSONB,
|
||
|
|
"status" TEXT,
|
||
|
|
"created_at" TIMESTAMP(3) DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3),
|
||
|
|
"created_by" TEXT,
|
||
|
|
"updated_by" TEXT,
|
||
|
|
"deleted_at" TIMESTAMP(3),
|
||
|
|
"is_public" BOOLEAN DEFAULT true,
|
||
|
|
"owner_id" TEXT,
|
||
|
|
|
||
|
|
CONSTRAINT "resource_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "members" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"user_id" TEXT NOT NULL,
|
||
|
|
"organization_id" TEXT NOT NULL,
|
||
|
|
"role" TEXT NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "members_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "teams" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"organization_id" TEXT NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "teams_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "team_members" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"team_id" TEXT NOT NULL,
|
||
|
|
"user_id" TEXT NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "team_members_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "invitations" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"email" TEXT NOT NULL,
|
||
|
|
"inviter_id" TEXT NOT NULL,
|
||
|
|
"organization_id" TEXT NOT NULL,
|
||
|
|
"team_id" TEXT,
|
||
|
|
"role" TEXT NOT NULL,
|
||
|
|
"status" TEXT NOT NULL,
|
||
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
|
||
|
|
CONSTRAINT "invitations_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "session" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"token" TEXT NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"ipAddress" TEXT,
|
||
|
|
"userAgent" TEXT,
|
||
|
|
"userId" TEXT NOT NULL,
|
||
|
|
"active_organization_id" TEXT,
|
||
|
|
"active_team_id" TEXT,
|
||
|
|
|
||
|
|
CONSTRAINT "session_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "account" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"accountId" TEXT NOT NULL,
|
||
|
|
"providerId" TEXT NOT NULL,
|
||
|
|
"userId" TEXT NOT NULL,
|
||
|
|
"idToken" TEXT,
|
||
|
|
"accessToken" TEXT,
|
||
|
|
"refreshToken" TEXT,
|
||
|
|
"accessTokenExpiresAt" TIMESTAMP(3),
|
||
|
|
"refreshTokenExpiresAt" TIMESTAMP(3),
|
||
|
|
"scope" TEXT,
|
||
|
|
"password" TEXT,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "account_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "verification" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"identifier" TEXT NOT NULL,
|
||
|
|
"value" TEXT NOT NULL,
|
||
|
|
"expiresAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updatedAt" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "verification_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "oauth_applications" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"client_id" TEXT NOT NULL,
|
||
|
|
"client_secret" TEXT,
|
||
|
|
"name" TEXT NOT NULL,
|
||
|
|
"redirect_urls" TEXT NOT NULL,
|
||
|
|
"metadata" TEXT,
|
||
|
|
"type" TEXT NOT NULL,
|
||
|
|
"disabled" BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
"user_id" TEXT,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "oauth_applications_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "oauth_access_tokens" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"access_token" TEXT NOT NULL,
|
||
|
|
"refresh_token" TEXT NOT NULL,
|
||
|
|
"access_token_expires_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
"refresh_token_expires_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
"client_id" TEXT NOT NULL,
|
||
|
|
"user_id" TEXT NOT NULL,
|
||
|
|
"scopes" TEXT NOT NULL,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "oauth_access_tokens_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "oauth_consents" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"user_id" TEXT NOT NULL,
|
||
|
|
"client_id" TEXT NOT NULL,
|
||
|
|
"scopes" TEXT NOT NULL,
|
||
|
|
"consent_given" BOOLEAN NOT NULL,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "oauth_consents_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "sso_providers" (
|
||
|
|
"id" TEXT NOT NULL,
|
||
|
|
"issuer" TEXT NOT NULL,
|
||
|
|
"domain" TEXT NOT NULL,
|
||
|
|
"oidcConfig" TEXT,
|
||
|
|
"samlConfig" TEXT,
|
||
|
|
"user_id" TEXT,
|
||
|
|
"provider_id" TEXT NOT NULL,
|
||
|
|
"organization_id" TEXT,
|
||
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "sso_providers_pkey" PRIMARY KEY ("id")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "_OrganizationToTerm" (
|
||
|
|
"A" TEXT NOT NULL,
|
||
|
|
"B" TEXT NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "_OrganizationToTerm_AB_pkey" PRIMARY KEY ("A","B")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "_PostToTerm" (
|
||
|
|
"A" TEXT NOT NULL,
|
||
|
|
"B" TEXT NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "_PostToTerm_AB_pkey" PRIMARY KEY ("A","B")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateTable
|
||
|
|
CREATE TABLE "_RoleToUser" (
|
||
|
|
"A" TEXT NOT NULL,
|
||
|
|
"B" TEXT NOT NULL,
|
||
|
|
|
||
|
|
CONSTRAINT "_RoleToUser_AB_pkey" PRIMARY KEY ("A","B")
|
||
|
|
);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "users_username_key" ON "users"("username");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "users_email_key" ON "users"("email");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "users_organization_id_deletedAt_idx" ON "users"("organization_id", "deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "organizations_slug_key" ON "organizations"("slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "organizations_parent_id_idx" ON "organizations"("parent_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "organizations_path_idx" ON "organizations"("path");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "organizations_level_order_idx" ON "organizations"("level", "order");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "organizations_deletedAt_idx" ON "organizations"("deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_type_status_deletedAt_idx" ON "posts"("type", "status", "deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_parent_id_deletedAt_order_idx" ON "posts"("parent_id", "deletedAt", "order");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_path_deletedAt_idx" ON "posts"("path", "deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_author_id_type_deletedAt_updatedAt_idx" ON "posts"("author_id", "type", "deletedAt", "updatedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_organization_id_type_deletedAt_publishedAt_idx" ON "posts"("organization_id", "type", "deletedAt", "publishedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "posts_metadata_idx" ON "posts" USING GIN ("metadata" jsonb_path_ops);
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "taxonomies_slug_key" ON "taxonomies"("slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "taxonomies_deletedAt_slug_idx" ON "taxonomies"("deletedAt", "slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "terms_parent_id_idx" ON "terms"("parent_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "terms_path_idx" ON "terms"("path");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "terms_level_order_idx" ON "terms"("level", "order");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "terms_taxonomy_id_deletedAt_idx" ON "terms"("taxonomy_id", "deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "terms_taxonomy_id_slug_key" ON "terms"("taxonomy_id", "slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "roles_name_key" ON "roles"("name");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "roles_slug_key" ON "roles"("slug");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "roles_isSystem_isActive_idx" ON "roles"("isSystem", "isActive");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "user_actions_type_createdAt_idx" ON "user_actions"("type", "createdAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "user_actions_post_id_idx" ON "user_actions"("post_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "user_actions_user_id_type_createdAt_idx" ON "user_actions"("user_id", "type", "createdAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "user_actions_user_id_post_id_type_key" ON "user_actions"("user_id", "post_id", "type");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "system_configs_key_key" ON "system_configs"("key");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "system_configs_group_isPublic_idx" ON "system_configs"("group", "isPublic");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "profiles_organization_id_deletedAt_idx" ON "profiles"("organization_id", "deletedAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "profiles_hireDate_idx" ON "profiles"("hireDate");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "profiles_level_idx" ON "profiles"("level");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "profiles_dutyCode_dutyLevel_idx" ON "profiles"("dutyCode", "dutyLevel");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "resource_fileId_key" ON "resource"("fileId");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "resource_type_idx" ON "resource"("type");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "resource_created_at_idx" ON "resource"("created_at");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "members_organization_id_role_idx" ON "members"("organization_id", "role");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "members_user_id_idx" ON "members"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "members_user_id_organization_id_key" ON "members"("user_id", "organization_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "teams_organization_id_idx" ON "teams"("organization_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "team_members_team_id_idx" ON "team_members"("team_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "team_members_user_id_idx" ON "team_members"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "team_members_team_id_user_id_key" ON "team_members"("team_id", "user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "invitations_email_status_idx" ON "invitations"("email", "status");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "invitations_organization_id_status_idx" ON "invitations"("organization_id", "status");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "invitations_team_id_status_idx" ON "invitations"("team_id", "status");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "invitations_expiresAt_idx" ON "invitations"("expiresAt");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "session_token_key" ON "session"("token");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "account_providerId_accountId_key" ON "account"("providerId", "accountId");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "verification_identifier_key" ON "verification"("identifier");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "oauth_applications_client_id_key" ON "oauth_applications"("client_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_applications_client_id_idx" ON "oauth_applications"("client_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_applications_user_id_idx" ON "oauth_applications"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_applications_disabled_idx" ON "oauth_applications"("disabled");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_access_token_idx" ON "oauth_access_tokens"("access_token");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_refresh_token_idx" ON "oauth_access_tokens"("refresh_token");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_client_id_idx" ON "oauth_access_tokens"("client_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_user_id_idx" ON "oauth_access_tokens"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_access_token_expires_at_idx" ON "oauth_access_tokens"("access_token_expires_at");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_access_tokens_refresh_token_expires_at_idx" ON "oauth_access_tokens"("refresh_token_expires_at");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_consents_user_id_idx" ON "oauth_consents"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_consents_client_id_idx" ON "oauth_consents"("client_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "oauth_consents_consent_given_idx" ON "oauth_consents"("consent_given");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "oauth_consents_user_id_client_id_key" ON "oauth_consents"("user_id", "client_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE UNIQUE INDEX "sso_providers_provider_id_key" ON "sso_providers"("provider_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "sso_providers_provider_id_idx" ON "sso_providers"("provider_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "sso_providers_user_id_idx" ON "sso_providers"("user_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "sso_providers_organization_id_idx" ON "sso_providers"("organization_id");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "sso_providers_domain_idx" ON "sso_providers"("domain");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "sso_providers_issuer_idx" ON "sso_providers"("issuer");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "_OrganizationToTerm_B_index" ON "_OrganizationToTerm"("B");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "_PostToTerm_B_index" ON "_PostToTerm"("B");
|
||
|
|
|
||
|
|
-- CreateIndex
|
||
|
|
CREATE INDEX "_RoleToUser_B_index" ON "_RoleToUser"("B");
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "users" ADD CONSTRAINT "users_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "organizations" ADD CONSTRAINT "organizations_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "organizations"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "posts" ADD CONSTRAINT "posts_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "posts"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "posts" ADD CONSTRAINT "posts_author_id_fkey" FOREIGN KEY ("author_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "posts" ADD CONSTRAINT "posts_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "terms" ADD CONSTRAINT "terms_parent_id_fkey" FOREIGN KEY ("parent_id") REFERENCES "terms"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "terms" ADD CONSTRAINT "terms_taxonomy_id_fkey" FOREIGN KEY ("taxonomy_id") REFERENCES "taxonomies"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "user_actions" ADD CONSTRAINT "user_actions_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "user_actions" ADD CONSTRAINT "user_actions_post_id_fkey" FOREIGN KEY ("post_id") REFERENCES "posts"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "profiles" ADD CONSTRAINT "profiles_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "resource" ADD CONSTRAINT "resource_owner_id_fkey" FOREIGN KEY ("owner_id") REFERENCES "users"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "members" ADD CONSTRAINT "members_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "members" ADD CONSTRAINT "members_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "teams" ADD CONSTRAINT "teams_organization_id_fkey" FOREIGN KEY ("organization_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 "invitations" ADD CONSTRAINT "invitations_inviter_id_fkey" FOREIGN KEY ("inviter_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "invitations" ADD CONSTRAINT "invitations_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "invitations" ADD CONSTRAINT "invitations_team_id_fkey" FOREIGN KEY ("team_id") REFERENCES "teams"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "session" ADD CONSTRAINT "session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "session" ADD CONSTRAINT "session_active_organization_id_fkey" FOREIGN KEY ("active_organization_id") REFERENCES "organizations"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "session" ADD CONSTRAINT "session_active_team_id_fkey" FOREIGN KEY ("active_team_id") REFERENCES "teams"("id") ON DELETE SET NULL ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "account" ADD CONSTRAINT "account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "oauth_access_tokens" ADD CONSTRAINT "oauth_access_tokens_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "oauth_consents" ADD CONSTRAINT "oauth_consents_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "sso_providers" ADD CONSTRAINT "sso_providers_user_id_fkey" FOREIGN KEY ("user_id") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "sso_providers" ADD CONSTRAINT "sso_providers_organization_id_fkey" FOREIGN KEY ("organization_id") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_OrganizationToTerm" ADD CONSTRAINT "_OrganizationToTerm_A_fkey" FOREIGN KEY ("A") REFERENCES "organizations"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_OrganizationToTerm" ADD CONSTRAINT "_OrganizationToTerm_B_fkey" FOREIGN KEY ("B") REFERENCES "terms"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_PostToTerm" ADD CONSTRAINT "_PostToTerm_A_fkey" FOREIGN KEY ("A") REFERENCES "posts"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_PostToTerm" ADD CONSTRAINT "_PostToTerm_B_fkey" FOREIGN KEY ("B") REFERENCES "terms"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "roles"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
||
|
|
|
||
|
|
-- AddForeignKey
|
||
|
|
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "users"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|