40 lines
1.8 KiB
SQL
40 lines
1.8 KiB
SQL
|
|
-- P4a Task 3:水印版本化——albums 双版本位列(watermarkVersion 已有 P1 起,
|
|||
|
|
-- 本迁移补「有效版本位」watermarkEnabled/watermarkEffectiveVersion,语义见
|
|||
|
|
-- packages/contracts/src/watermark.ts)+ 配置版本账本 watermark_configs +
|
|||
|
|
-- 历史重生成任务 watermark_jobs(id 兼作对外 jobId 与 BullMQ jobId)。
|
|||
|
|
-- 校对手决:Prisma 生成 DDL 固定 utf8mb4_unicode_ci,逐表改写为库级约定的
|
|||
|
|
-- utf8mb4_0900_bin(albumId/id/errorCode 等字符串列的大小写敏感语义依赖它;
|
|||
|
|
-- 新增两列非 VARCHAR,无校对关注)。
|
|||
|
|
-- AlterTable
|
|||
|
|
ALTER TABLE `albums` ADD COLUMN `watermarkEffectiveVersion` INTEGER NOT NULL DEFAULT 0,
|
|||
|
|
ADD COLUMN `watermarkEnabled` BOOLEAN NOT NULL DEFAULT false;
|
|||
|
|
|
|||
|
|
-- CreateTable
|
|||
|
|
CREATE TABLE `watermark_configs` (
|
|||
|
|
`id` VARCHAR(191) NOT NULL,
|
|||
|
|
`albumId` VARCHAR(64) NOT NULL,
|
|||
|
|
`configVersion` INTEGER NOT NULL,
|
|||
|
|
`config` JSON NOT NULL,
|
|||
|
|
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|||
|
|
|
|||
|
|
UNIQUE INDEX `watermark_configs_albumId_configVersion_key`(`albumId`, `configVersion`),
|
|||
|
|
PRIMARY KEY (`id`)
|
|||
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|
|||
|
|
|
|||
|
|
-- CreateTable
|
|||
|
|
CREATE TABLE `watermark_jobs` (
|
|||
|
|
`id` VARCHAR(191) NOT NULL,
|
|||
|
|
`albumId` VARCHAR(64) NOT NULL,
|
|||
|
|
`configVersion` INTEGER NOT NULL,
|
|||
|
|
`state` VARCHAR(16) NOT NULL DEFAULT 'pending',
|
|||
|
|
`progress` INTEGER NOT NULL DEFAULT 0,
|
|||
|
|
`total` INTEGER NOT NULL DEFAULT 0,
|
|||
|
|
`failed` INTEGER NOT NULL DEFAULT 0,
|
|||
|
|
`errorCode` VARCHAR(64) NULL,
|
|||
|
|
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
|||
|
|
`updatedAt` DATETIME(6) NOT NULL,
|
|||
|
|
|
|||
|
|
INDEX `watermark_jobs_albumId_createdAt_idx`(`albumId`, `createdAt`),
|
|||
|
|
PRIMARY KEY (`id`)
|
|||
|
|
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
|