Files
photo-live/packages/db-cn/prisma/migrations/20260920104345_usage_thresholds_alerts/migration.sql
T

35 lines
1.6 KiB
SQL
Raw Normal View History

-- P4a Task 5:用量阈值(单行配置表,迁移内种子行)+ 阈值告警账本(A23 后台侧)。
-- 校对手决:Prisma 生成 DDL 固定 utf8mb4_unicode_ci,逐表改写为库级约定的
-- utf8mb4_0900_bin(id/kind/albumId 等字符串列的大小写敏感语义依赖它)。
-- 「同 kind+albumId 活跃告警唯一」为应用级约束(MySQL 无部分唯一索引):
-- evaluateUsage 以单行配置 FOR UPDATE 作串行化锚点(packages/db-cn/src/usage.ts)。
-- 阈值两维缺省 NULL=停用;种子行固定 id 见 USAGE_THRESHOLDS_SINGLETON_ID。
-- CreateTable
CREATE TABLE `usage_thresholds` (
`id` VARCHAR(191) NOT NULL,
`storageBytes` BIGINT NULL,
`perAlbumBytes` BIGINT NULL,
`updatedAt` DATETIME(6) NOT NULL,
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;
-- 单行种子(PUT /admin/usage/thresholds 恒 upsert 本行;缺失行由 evaluate
-- 兜底视作双维停用,但迁移种子保证常规路径下不变量成立)。
INSERT INTO `usage_thresholds` (`id`, `storageBytes`, `perAlbumBytes`, `updatedAt`)
VALUES ('usage-thresholds-single-row', NULL, NULL, CURRENT_TIMESTAMP(6));
-- CreateTable
CREATE TABLE `usage_alerts` (
`id` VARCHAR(191) NOT NULL,
`kind` VARCHAR(16) NOT NULL,
`albumId` VARCHAR(64) NULL,
`message` VARCHAR(1024) NOT NULL,
`createdAt` DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
`resolvedAt` DATETIME(6) NULL,
INDEX `usage_alerts_resolvedAt_idx`(`resolvedAt`),
PRIMARY KEY (`id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_bin;