forked from admin/hair-keeper
224 lines
7.0 KiB
SQL
224 lines
7.0 KiB
SQL
-- CreateTable
|
|
CREATE TABLE "user" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT,
|
|
"status" TEXT,
|
|
"dept_code" TEXT,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMPTZ NOT NULL,
|
|
"password" TEXT NOT NULL,
|
|
"is_super_admin" BOOLEAN NOT NULL DEFAULT false,
|
|
"last_login_at" TIMESTAMPTZ,
|
|
|
|
CONSTRAINT "user_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dept" (
|
|
"code" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL DEFAULT '',
|
|
"full_name" TEXT NOT NULL DEFAULT '',
|
|
|
|
CONSTRAINT "dept_pkey" PRIMARY KEY ("code")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "role" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "role_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "permission" (
|
|
"id" SERIAL NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "permission_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "selection_log" (
|
|
"id" SERIAL NOT NULL,
|
|
"userId" TEXT NOT NULL,
|
|
"context" TEXT NOT NULL,
|
|
"option_id" TEXT NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "selection_log_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_file_type" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "dev_file_type_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_pkg_type" (
|
|
"id" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"order" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "dev_pkg_type_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_analyzed_file" (
|
|
"id" SERIAL NOT NULL,
|
|
"path" TEXT NOT NULL,
|
|
"fileName" TEXT NOT NULL,
|
|
"commit_id" TEXT NOT NULL DEFAULT '',
|
|
"content" TEXT,
|
|
"file_type_id" TEXT NOT NULL,
|
|
"summary" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"exportedMembers" JSONB,
|
|
"tags" TEXT[],
|
|
"lastAnalyzedAt" TIMESTAMPTZ NOT NULL,
|
|
"createdAt" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "dev_analyzed_file_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_analyzed_pkg" (
|
|
"name" TEXT NOT NULL,
|
|
"version" TEXT NOT NULL,
|
|
"modifiedAt" TIMESTAMP(3) NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"homepage" TEXT,
|
|
"repository_url" TEXT,
|
|
"pkg_type_id" TEXT NOT NULL,
|
|
"projectRoleSummary" TEXT NOT NULL,
|
|
"primaryUsagePattern" TEXT NOT NULL,
|
|
"relatedFiles" TEXT[],
|
|
"relatedFileCount" INTEGER NOT NULL,
|
|
"last_analyzed_at" TIMESTAMPTZ NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "dev_analyzed_pkg_pkey" PRIMARY KEY ("name")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_file_dependency" (
|
|
"id" SERIAL NOT NULL,
|
|
"source_file_id" INTEGER NOT NULL,
|
|
"target_file_path" TEXT NOT NULL,
|
|
"usage_description" TEXT,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "dev_file_dependency_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_file_pkg_dependency" (
|
|
"id" SERIAL NOT NULL,
|
|
"source_file_id" INTEGER NOT NULL,
|
|
"package_name" TEXT NOT NULL,
|
|
"usage_description" TEXT,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "dev_file_pkg_dependency_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "dev_analyzed_folder" (
|
|
"path" TEXT NOT NULL,
|
|
"name" TEXT NOT NULL,
|
|
"summary" TEXT NOT NULL,
|
|
"description" TEXT NOT NULL,
|
|
"last_analyzed_at" TIMESTAMPTZ NOT NULL,
|
|
"created_at" TIMESTAMPTZ NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
|
|
CONSTRAINT "dev_analyzed_folder_pkey" PRIMARY KEY ("path")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_RoleToUser" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" TEXT NOT NULL,
|
|
|
|
CONSTRAINT "_RoleToUser_AB_pkey" PRIMARY KEY ("A","B")
|
|
);
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "_PermissionToRole" (
|
|
"A" INTEGER NOT NULL,
|
|
"B" INTEGER NOT NULL,
|
|
|
|
CONSTRAINT "_PermissionToRole_AB_pkey" PRIMARY KEY ("A","B")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "role_name_key" ON "role"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "permission_name_key" ON "permission"("name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "selection_log_userId_context_idx" ON "selection_log"("userId", "context");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "selection_log_context_option_id_idx" ON "selection_log"("context", "option_id");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "dev_analyzed_file_path_commit_id_key" ON "dev_analyzed_file"("path", "commit_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "dev_analyzed_pkg_pkg_type_id_idx" ON "dev_analyzed_pkg"("pkg_type_id");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "dev_file_dependency_target_file_path_idx" ON "dev_file_dependency"("target_file_path");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "dev_file_dependency_source_file_id_target_file_path_key" ON "dev_file_dependency"("source_file_id", "target_file_path");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "dev_file_pkg_dependency_package_name_idx" ON "dev_file_pkg_dependency"("package_name");
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "dev_file_pkg_dependency_source_file_id_package_name_key" ON "dev_file_pkg_dependency"("source_file_id", "package_name");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_RoleToUser_B_index" ON "_RoleToUser"("B");
|
|
|
|
-- CreateIndex
|
|
CREATE INDEX "_PermissionToRole_B_index" ON "_PermissionToRole"("B");
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "user" ADD CONSTRAINT "user_dept_code_fkey" FOREIGN KEY ("dept_code") REFERENCES "dept"("code") ON DELETE SET NULL ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "selection_log" ADD CONSTRAINT "selection_log_userId_fkey" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dev_analyzed_file" ADD CONSTRAINT "dev_analyzed_file_file_type_id_fkey" FOREIGN KEY ("file_type_id") REFERENCES "dev_file_type"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dev_analyzed_pkg" ADD CONSTRAINT "dev_analyzed_pkg_pkg_type_id_fkey" FOREIGN KEY ("pkg_type_id") REFERENCES "dev_pkg_type"("id") ON DELETE RESTRICT ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dev_file_dependency" ADD CONSTRAINT "dev_file_dependency_source_file_id_fkey" FOREIGN KEY ("source_file_id") REFERENCES "dev_analyzed_file"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "dev_file_pkg_dependency" ADD CONSTRAINT "dev_file_pkg_dependency_source_file_id_fkey" FOREIGN KEY ("source_file_id") REFERENCES "dev_analyzed_file"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_A_fkey" FOREIGN KEY ("A") REFERENCES "role"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_RoleToUser" ADD CONSTRAINT "_RoleToUser_B_fkey" FOREIGN KEY ("B") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_PermissionToRole" ADD CONSTRAINT "_PermissionToRole_A_fkey" FOREIGN KEY ("A") REFERENCES "permission"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|
|
|
|
-- AddForeignKey
|
|
ALTER TABLE "_PermissionToRole" ADD CONSTRAINT "_PermissionToRole_B_fkey" FOREIGN KEY ("B") REFERENCES "role"("id") ON DELETE CASCADE ON UPDATE CASCADE;
|