51 lines
2.1 KiB
SQL
51 lines
2.1 KiB
SQL
-- 基线迁移:为上传模板体系创建基础表,便于后续增量迁移在 shadow 数据库中正常回放
|
||
-- 使用 IF NOT EXISTS 保证在已有线上库上执行时是幂等、安全的
|
||
|
||
-- UploadTemplate:上传模板主表
|
||
CREATE TABLE IF NOT EXISTS "UploadTemplate" (
|
||
"id" TEXT NOT NULL,
|
||
"name" TEXT NOT NULL,
|
||
"description" TEXT,
|
||
"status" TEXT NOT NULL DEFAULT 'draft',
|
||
"materialType" TEXT NOT NULL DEFAULT '其他',
|
||
"materialKind" TEXT NOT NULL DEFAULT 'IMAGE',
|
||
"version" INTEGER NOT NULL DEFAULT 1,
|
||
"fieldGroups" TEXT,
|
||
"displayConfig" TEXT,
|
||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
CONSTRAINT "UploadTemplate_pkey" PRIMARY KEY ("id")
|
||
);
|
||
|
||
-- UploadField:模板字段表
|
||
CREATE TABLE IF NOT EXISTS "UploadField" (
|
||
"id" TEXT NOT NULL,
|
||
"templateId" TEXT NOT NULL,
|
||
"key" TEXT NOT NULL,
|
||
"label" TEXT NOT NULL,
|
||
"type" TEXT NOT NULL,
|
||
"required" BOOLEAN NOT NULL DEFAULT false,
|
||
"orderIndex" INTEGER NOT NULL DEFAULT 0,
|
||
"layoutWidth" TEXT,
|
||
"validations" TEXT,
|
||
"optionsSource" TEXT,
|
||
"optionsStatic" TEXT,
|
||
"allowedExtensions" TEXT,
|
||
"visibleOnHomeFilter" BOOLEAN NOT NULL DEFAULT false,
|
||
"isSearchable" BOOLEAN NOT NULL DEFAULT false,
|
||
"isReadOnly" BOOLEAN NOT NULL DEFAULT false,
|
||
"addToCategory" BOOLEAN NOT NULL DEFAULT false,
|
||
"conditions" TEXT,
|
||
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
"updatedAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||
|
||
CONSTRAINT "UploadField_pkey" PRIMARY KEY ("id")
|
||
);
|
||
|
||
-- 关联关系:字段隶属于模板
|
||
ALTER TABLE "UploadField"
|
||
ADD CONSTRAINT "UploadField_templateId_fkey"
|
||
FOREIGN KEY ("templateId") REFERENCES "UploadTemplate"("id")
|
||
ON DELETE CASCADE ON UPDATE CASCADE;
|