文件
hyb-oa/server/prisma/migrations/20260522191833_asset_governance_v1/migration.sql
T

29 行
1.7 KiB
SQL

CREATE TYPE "AssetType" AS ENUM ('fixed_asset', 'electronic_document', 'electronic_system', 'code_repository', 'backup_media');
CREATE TYPE "AssetSensitivityLevel" AS ENUM ('public_candidate', 'internal', 'confidential', 'strictly_confidential');
ALTER TABLE "asset_cards"
ADD COLUMN "asset_type" "AssetType" NOT NULL DEFAULT 'fixed_asset',
ADD COLUMN "sensitivity_level" "AssetSensitivityLevel" NOT NULL DEFAULT 'internal',
ADD COLUMN "owner_employee_id" UUID,
ADD COLUMN "keeper_employee_id" UUID,
ADD COLUMN "archive_location" TEXT,
ADD COLUMN "external_ref" TEXT,
ADD COLUMN "source_hash" TEXT,
ADD COLUMN "verification_no" TEXT,
ADD COLUMN "confidentiality_note" TEXT,
ADD COLUMN "metadata" JSONB,
ADD COLUMN "last_verified_at" DATE,
ADD COLUMN "expires_at" DATE;
CREATE UNIQUE INDEX "asset_cards_verification_no_key" ON "asset_cards"("verification_no");
CREATE INDEX "idx_asset_cards_asset_type" ON "asset_cards"("asset_type");
CREATE INDEX "idx_asset_cards_sensitivity" ON "asset_cards"("sensitivity_level");
CREATE INDEX "idx_asset_cards_owner" ON "asset_cards"("owner_employee_id");
CREATE INDEX "idx_asset_cards_keeper" ON "asset_cards"("keeper_employee_id");
CREATE INDEX "idx_asset_cards_source_hash" ON "asset_cards"("source_hash");
CREATE INDEX "idx_asset_cards_last_verified" ON "asset_cards"("last_verified_at");
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_owner_employee_id_fkey" FOREIGN KEY ("owner_employee_id") REFERENCES "employees"("id") ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE "asset_cards" ADD CONSTRAINT "asset_cards_keeper_employee_id_fkey" FOREIGN KEY ("keeper_employee_id") REFERENCES "employees"("id") ON DELETE SET NULL ON UPDATE CASCADE;