|
|
@@ -12,7 +12,7 @@ CREATE TABLE `media_file` (
|
|
|
`file_size` BIGINT COMMENT '文件大小(字节)',
|
|
|
`bucket_name` VARCHAR(100) NOT NULL COMMENT '存储桶名称',
|
|
|
`file_url` VARCHAR(500) NOT NULL COMMENT '文件访问URL',
|
|
|
- `storage_type` VARCHAR(20) DEFAULT 'oss' COMMENT '存储类型(oss、local、minio等)',
|
|
|
+ `storage_type` VARCHAR(20) DEFAULT 'minio' COMMENT '存储类型(oss、local、minio等)',
|
|
|
`status` TINYINT DEFAULT 0 COMMENT '文件状态:0-正常,1-已删除(逻辑删除)',
|
|
|
`md5` VARCHAR(32) COMMENT '文件MD5值',
|
|
|
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
@@ -31,9 +31,126 @@ CREATE TABLE `artist_media_history` (
|
|
|
`artist_id` INT NOT NULL COMMENT '关联artist服务的artist.id',
|
|
|
`media_type` VARCHAR(20) NOT NULL COMMENT '媒体类型: avatar、header_image等',
|
|
|
`media_file_id` BIGINT NOT NULL COMMENT '关联本服务的media_file.id',
|
|
|
- `is_current` TINYINT DEFAULT 0 COMMENT '是否为当前使用版本:0-否,1-是',
|
|
|
+ `is_current` TINYINT DEFAULT 1 COMMENT '是否为当前使用版本:0-否,1-是',
|
|
|
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
FOREIGN KEY (`media_file_id`) REFERENCES `media_file` (`id`) ON DELETE RESTRICT,
|
|
|
UNIQUE KEY `uk_artist_media_current` (`artist_id`, `media_type`, `is_current`),
|
|
|
- INDEX `idx_artist_id` (`artist_id`) -- 逻辑关联索引
|
|
|
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='艺人媒体文件历史记录表';
|
|
|
+ INDEX `idx_artist_id` (`artist_id`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='艺人媒体文件历史记录表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 3. 分块上传信息表
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `chunk_info` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `file_md5` VARCHAR(32) NOT NULL COMMENT '文件MD5',
|
|
|
+ `file_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
|
|
|
+ `chunk_index` INT NOT NULL COMMENT '分块索引',
|
|
|
+ `total_chunks` INT NOT NULL COMMENT '总分块数',
|
|
|
+ `chunk_url` VARCHAR(500) COMMENT '分块文件URL',
|
|
|
+ `status` TINYINT DEFAULT 0 COMMENT '状态:0-待上传,1-已上传',
|
|
|
+ `uploaded_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ INDEX `idx_file_md5` (`file_md5`),
|
|
|
+ INDEX `idx_chunk_index` (`chunk_index`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='分块上传信息表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 4. 媒体处理任务表
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `media_process` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `file_id` VARCHAR(32) NOT NULL COMMENT '文件ID',
|
|
|
+ `file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
|
|
|
+ `bucket` VARCHAR(100) NOT NULL COMMENT '存储桶',
|
|
|
+ `file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
|
|
|
+ `status` VARCHAR(10) DEFAULT '0' COMMENT '任务状态: 0-待处理, 1-处理中, 2-处理成功, 3-处理失败',
|
|
|
+ `fail_count` INT DEFAULT 0 COMMENT '失败次数',
|
|
|
+ `errormsg` VARCHAR(1000) COMMENT '错误信息',
|
|
|
+ `url` VARCHAR(500) COMMENT '处理后文件URL',
|
|
|
+ `finish_date` DATETIME COMMENT '完成时间',
|
|
|
+ `create_date` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `process_definition_id` VARCHAR(50) COMMENT '流程定义ID',
|
|
|
+ `tag` VARCHAR(50) COMMENT '标签',
|
|
|
+ INDEX `idx_status` (`status`),
|
|
|
+ INDEX `idx_file_id` (`file_id`),
|
|
|
+ INDEX `idx_create_date` (`create_date`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体处理任务表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 5. 媒体处理历史表
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `media_process_history` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `process_id` BIGINT COMMENT '对应的任务ID',
|
|
|
+ `file_id` VARCHAR(32) NOT NULL COMMENT '文件ID',
|
|
|
+ `file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
|
|
|
+ `bucket` VARCHAR(100) NOT NULL COMMENT '存储桶',
|
|
|
+ `file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
|
|
|
+ `status` VARCHAR(10) COMMENT '处理状态',
|
|
|
+ `errormsg` VARCHAR(1000) COMMENT '错误信息',
|
|
|
+ `url` VARCHAR(500) COMMENT '处理后URL',
|
|
|
+ `finish_date` DATETIME COMMENT '完成时间',
|
|
|
+ `create_date` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ INDEX `idx_process_id` (`process_id`),
|
|
|
+ INDEX `idx_file_id` (`file_id`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体处理历史表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 6. 视频文件表(用于存储视频相关信息)
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `media_video` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
|
|
|
+ `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名',
|
|
|
+ `file_url` VARCHAR(500) COMMENT '视频文件URL',
|
|
|
+ `preview_gif_url` VARCHAR(500) COMMENT '预览GIF URL',
|
|
|
+ `file_size` BIGINT COMMENT '文件大小',
|
|
|
+ `duration` VARCHAR(20) COMMENT '视频时长',
|
|
|
+ `singer` VARCHAR(100) COMMENT '上传歌手',
|
|
|
+ `bucket_name` VARCHAR(50) COMMENT '存储桶名',
|
|
|
+ `status` TINYINT DEFAULT 0 COMMENT '状态:0-待处理,1-处理中,2-已完成,3-处理失败',
|
|
|
+ `process_progress` DECIMAL(5,2) DEFAULT 0.00 COMMENT '处理进度(%)',
|
|
|
+ `retry_count` TINYINT DEFAULT 0 COMMENT '重试次数',
|
|
|
+ `created_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `updated_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ `processed_time` TIMESTAMP NULL COMMENT '处理完成时间',
|
|
|
+ INDEX `idx_status` (`status`),
|
|
|
+ INDEX `idx_created_time` (`created_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频文件表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 7. 视频处理队列表
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `video_process_queue` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `video_id` BIGINT NOT NULL COMMENT '视频ID',
|
|
|
+ `priority` TINYINT DEFAULT 1 COMMENT '优先级:1-普通,2-高',
|
|
|
+ `status` TINYINT DEFAULT 0 COMMENT '0-待处理,1-已调度,2-已完成',
|
|
|
+ `scheduled_time` TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '调度时间',
|
|
|
+ INDEX `idx_status_priority` (`status`, `priority`, `scheduled_time`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='视频处理队列表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 8. 系统配置表
|
|
|
+-- ------------------------------
|
|
|
+CREATE TABLE `sys_config` (
|
|
|
+ `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
|
|
|
+ `config_key` VARCHAR(100) NOT NULL UNIQUE COMMENT '配置键',
|
|
|
+ `config_value` TEXT COMMENT '配置值',
|
|
|
+ `description` VARCHAR(255) COMMENT '配置描述',
|
|
|
+ `create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
|
+ `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
|
+ INDEX `idx_config_key` (`config_key`)
|
|
|
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统配置表';
|
|
|
+
|
|
|
+-- ------------------------------
|
|
|
+-- 9. 初始化系统配置
|
|
|
+-- ------------------------------
|
|
|
+INSERT INTO `sys_config` (`config_key`, `config_value`, `description`) VALUES
|
|
|
+ ('ffmpeg.path', '/usr/local/bin/ffmpeg', 'FFmpeg可执行文件路径'),
|
|
|
+ ('video.max_size', '104857600', '视频最大上传大小(字节),100MB'),
|
|
|
+ ('chunk.size', '2097152', '分块大小(字节),2MB'),
|
|
|
+ ('max.concurrent.tasks', '5', '最大并发处理任务数'),
|
|
|
+ ('max.retry.count', '3', '最大重试次数'),
|
|
|
+ ('temp.dir', '/tmp/media_temp', '临时文件目录');
|