| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- CREATE DATABASE IF NOT EXISTS wy_media DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;
- USE wy_media;
- -- ------------------------------
- -- 1. 媒体文件信息表(全局媒体文件存储)
- -- ------------------------------
- CREATE TABLE `media_file` (
- `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
- `original_name` VARCHAR(255) NOT NULL COMMENT '原始文件名',
- `file_name` VARCHAR(255) NOT NULL COMMENT '存储文件名(系统生成的唯一文件名)',
- `file_type` VARCHAR(20) NOT NULL COMMENT '文件类型:image、audio、video',
- `file_size` BIGINT COMMENT '文件大小(字节)',
- `bucket_name` VARCHAR(100) NOT NULL COMMENT '存储桶名称',
- `file_url` VARCHAR(500) NOT NULL COMMENT '文件访问URL',
- `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 '创建时间',
- `update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
- INDEX `idx_file_type` (`file_type`),
- INDEX `idx_bucket_name` (`bucket_name`),
- INDEX `idx_create_time` (`create_time`),
- INDEX `idx_md5` (`md5`)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='媒体文件信息表';
- -- ------------------------------
- -- 2. 艺人媒体文件历史记录表(关联artist服务的artist.id、本服务的media_file表)
- -- ------------------------------
- CREATE TABLE `artist_media_history` (
- `id` BIGINT AUTO_INCREMENT PRIMARY KEY,
- `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 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='艺人媒体文件历史记录表';
- -- ------------------------------
- -- 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', '临时文件目录');
|