feat: 新增数据库

This commit is contained in:
2026-04-25 21:52:18 +08:00
parent 223845b0ed
commit abd1b03529
23 changed files with 1890 additions and 97 deletions
+55
View File
@@ -0,0 +1,55 @@
-- 表1:用户表
CREATE TABLE IF NOT EXISTS `users` (
`id` INT NOT NULL COMMENT 'NewAPI 用户 ID,作为本站用户主键',
`username` VARCHAR(191) NOT NULL DEFAULT '' COMMENT '用户名快照',
`display_name` VARCHAR(191) NOT NULL DEFAULT '' COMMENT '展示名称快照',
`group` VARCHAR(191) NOT NULL DEFAULT '' COMMENT '用户分组快照',
`role` INT NOT NULL DEFAULT 0 COMMENT '用户角色快照',
`status` INT NOT NULL DEFAULT 0 COMMENT '用户状态快照',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
-- 表2:生图记录表
CREATE TABLE IF NOT EXISTS `image_generations` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '生图记录 ID',
`user_id` INT NOT NULL COMMENT 'NewAPI 用户 ID',
`prompt` TEXT NOT NULL COMMENT '用户输入的生图提示词',
`status` ENUM('QUEUED', 'RUNNING', 'SUCCEEDED', 'FAILED') NOT NULL DEFAULT 'RUNNING' COMMENT '生图状态',
`model` VARCHAR(64) NOT NULL DEFAULT 'gpt-image-2' COMMENT '生图模型',
`size` VARCHAR(32) NOT NULL DEFAULT '1024x1024' COMMENT '图片尺寸',
`started_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '生图开始时间',
`ended_at` DATETIME(3) NULL COMMENT '生图结束时间',
`duration_ms` INT NULL COMMENT '生图耗时,单位毫秒',
`image_url` VARCHAR(2048) NULL COMMENT '上游返回的图片 URL',
`image_base64` LONGTEXT NULL COMMENT '服务端下载图片后保存的 base64 原文',
`image_mime_type` VARCHAR(191) NULL COMMENT '图片 MIME 类型',
`revised_prompt` TEXT NULL COMMENT '上游返回的修订提示词',
`upstream_response` JSON NULL COMMENT '完整上游生图接口响应',
`error_message` TEXT NULL COMMENT '失败原因或图片下载失败信息',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
`deleted_at` DATETIME(3) NULL COMMENT '软删除时间',
PRIMARY KEY (`id`),
INDEX `image_generations_user_id_created_at_idx` (`user_id`, `created_at`),
INDEX `image_generations_status_idx` (`status`),
INDEX `image_generations_deleted_at_idx` (`deleted_at`),
CONSTRAINT `image_generations_user_id_fkey`
FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='生图记录表';
-- 表3:生图统计表
CREATE TABLE IF NOT EXISTS `generation_stats` (
`id` VARCHAR(32) NOT NULL COMMENT '统计行 ID,固定为 global',
`total_requests` INT NOT NULL DEFAULT 0 COMMENT '总生图请求数,包含成功和失败',
`success_requests` INT NOT NULL DEFAULT 0 COMMENT '成功生图请求数',
`failed_requests` INT NOT NULL DEFAULT 0 COMMENT '失败生图请求数',
`queued_requests` INT NOT NULL DEFAULT 0 COMMENT '排队中请求数,预留异步任务使用',
`running_requests` INT NOT NULL DEFAULT 0 COMMENT '进行中请求数',
`total_images` INT NOT NULL DEFAULT 0 COMMENT '成功生成图片总数',
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间',
`updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='生图统计表';