refactor(project): Reorganize frontend and backend directories
This commit is contained in:
@@ -0,0 +1,778 @@
|
||||
-- 1. 创建数据库
|
||||
CREATE DATABASE IF NOT EXISTS `video_auth` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_user` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_content` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_comment` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_recommend` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
CREATE DATABASE IF NOT EXISTS `video_admin` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
-- 创建Nacos配置数据库
|
||||
CREATE DATABASE IF NOT EXISTS nacos_config DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 2. 认证数据库(video_auth)
|
||||
USE `video_auth`;
|
||||
|
||||
-- 用户认证表
|
||||
CREATE TABLE IF NOT EXISTS `auth_user` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户ID',
|
||||
`username` varchar(64) NOT NULL COMMENT '用户名',
|
||||
`password` varchar(256) NOT NULL COMMENT '密码(加密)',
|
||||
`salt` varchar(64) NOT NULL COMMENT '加密盐值',
|
||||
`email` varchar(128) DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(64) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`),
|
||||
UNIQUE KEY `idx_email` (`email`),
|
||||
UNIQUE KEY `idx_phone` (`phone`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户认证表';
|
||||
|
||||
-- 用户角色表
|
||||
CREATE TABLE IF NOT EXISTS `auth_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '角色编码(USER_开头)',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '角色描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色表';
|
||||
|
||||
-- 用户权限表
|
||||
CREATE TABLE IF NOT EXISTS `auth_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '权限名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '权限编码',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '权限描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户权限表';
|
||||
|
||||
-- 用户角色关联表
|
||||
CREATE TABLE IF NOT EXISTS `auth_user_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_role` (`user_id`,`role_id`),
|
||||
CONSTRAINT `fk_aur_user` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_aur_role` FOREIGN KEY (`role_id`) REFERENCES `auth_role` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';
|
||||
|
||||
-- 角色权限关联表
|
||||
CREATE TABLE IF NOT EXISTS `auth_role_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`permission_id` bigint NOT NULL COMMENT '权限ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_role_permission` (`role_id`,`permission_id`),
|
||||
CONSTRAINT `fk_arp_role` FOREIGN KEY (`role_id`) REFERENCES `auth_role` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_arp_permission` FOREIGN KEY (`permission_id`) REFERENCES `auth_permission` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表';
|
||||
|
||||
-- OAuth2客户端表
|
||||
CREATE TABLE IF NOT EXISTS `auth_oauth_client` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`client_id` varchar(64) NOT NULL COMMENT '客户端ID',
|
||||
`client_secret` varchar(256) NOT NULL COMMENT '客户端密钥',
|
||||
`client_name` varchar(128) NOT NULL COMMENT '客户端名称',
|
||||
`client_uri` varchar(256) DEFAULT NULL COMMENT '客户端主页',
|
||||
`redirect_uri` varchar(256) DEFAULT NULL COMMENT '重定向URI',
|
||||
`scope` varchar(128) NOT NULL COMMENT '授权范围',
|
||||
`grant_types` varchar(128) NOT NULL COMMENT '授权类型',
|
||||
`access_token_validity` int NOT NULL DEFAULT '3600' COMMENT '访问令牌有效期(秒)',
|
||||
`refresh_token_validity` int NOT NULL DEFAULT '86400' COMMENT '刷新令牌有效期(秒)',
|
||||
`additional_information` text COMMENT '附加信息',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_client_id` (`client_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='OAuth2客户端表';
|
||||
|
||||
-- 初始化认证数据
|
||||
INSERT IGNORE INTO `auth_role` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '管理员', 'USER_ADMIN', '系统管理员'),
|
||||
(2, '普通用户', 'USER_NORMAL', '普通用户'),
|
||||
(3, 'VIP用户', 'USER_VIP', 'VIP用户'),
|
||||
(4, '内容创作者', 'USER_CREATOR', '内容创作专用角色');
|
||||
|
||||
INSERT IGNORE INTO `auth_permission` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '视频上传', 'video:upload', '视频上传权限'),
|
||||
(2, '视频管理', 'video:manage', '视频管理权限'),
|
||||
(3, '评论管理', 'comment:manage', '评论管理权限'),
|
||||
(4, '个人资料管理', 'profile:manage', '个人资料管理权限');
|
||||
|
||||
INSERT IGNORE INTO `auth_role_permission` (`role_id`, `permission_id`) VALUES
|
||||
(1, 1), (1, 2), (1, 3), (1, 4),
|
||||
(3, 1), (3, 4),
|
||||
(4, 1), (4, 3), (4, 4);
|
||||
|
||||
INSERT IGNORE INTO `auth_oauth_client` (`client_id`, `client_secret`, `client_name`, `redirect_uri`, `scope`, `grant_types`, `access_token_validity`, `refresh_token_validity`) VALUES
|
||||
('video-web', '$2a$10$oRZ7x/.dW.6Q9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ', '视频网站前端', 'http://localhost:8080', 'all', 'password,refresh_token', 3600, 86400),
|
||||
('video-admin', '$2a$10$oRZ7x/.dW.6Q9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ9z0QY1JZ5e9ZQ', '视频管理后台', 'http://localhost:8081', 'all', 'authorization_code,refresh_token', 3600, 86400);
|
||||
|
||||
-- 3. 用户数据库(video_user)
|
||||
USE `video_user`;
|
||||
|
||||
-- 用户信息表
|
||||
CREATE TABLE IF NOT EXISTS `user_info` (
|
||||
`id` bigint NOT NULL COMMENT '用户ID',
|
||||
`nickname` varchar(64) NOT NULL COMMENT '昵称',
|
||||
`avatar` varchar(256) DEFAULT NULL COMMENT '头像URL',
|
||||
`gender` tinyint DEFAULT '0' COMMENT '性别(0:未知,1:男,2:女)',
|
||||
`birthday` date DEFAULT NULL COMMENT '生日',
|
||||
`signature` varchar(256) DEFAULT NULL COMMENT '个性签名',
|
||||
`region` varchar(128) DEFAULT NULL COMMENT '地区',
|
||||
`follower_count` int NOT NULL DEFAULT '0' COMMENT '粉丝数',
|
||||
`following_count` int NOT NULL DEFAULT '0' COMMENT '关注数',
|
||||
`video_count` int NOT NULL DEFAULT '0' COMMENT '视频数',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '获赞数',
|
||||
`coin_count` int NOT NULL DEFAULT '0' COMMENT '硬币数',
|
||||
`favorite_count` int NOT NULL DEFAULT '0' COMMENT '收藏数',
|
||||
`view_count` bigint NOT NULL DEFAULT '0' COMMENT '播放数',
|
||||
`level` tinyint NOT NULL DEFAULT '1' COMMENT '等级',
|
||||
`vip_level` tinyint NOT NULL DEFAULT '0' COMMENT 'VIP等级',
|
||||
`vip_expire_time` datetime DEFAULT NULL COMMENT 'VIP到期时间',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
CONSTRAINT `fk_ui_user` FOREIGN KEY (`id`) REFERENCES `video_auth`.`auth_user` (`id`) ON DELETE CASCADE,
|
||||
KEY `idx_nickname` (`nickname`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户信息表';
|
||||
|
||||
-- 用户统计表(按天)
|
||||
CREATE TABLE IF NOT EXISTS `user_stat_daily` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`stat_date` date NOT NULL COMMENT '统计日期',
|
||||
`follower_increment` int NOT NULL DEFAULT '0' COMMENT '新增粉丝数',
|
||||
`following_increment` int NOT NULL DEFAULT '0' COMMENT '新增关注数',
|
||||
`video_increment` int NOT NULL DEFAULT '0' COMMENT '新增视频数',
|
||||
`like_increment` int NOT NULL DEFAULT '0' COMMENT '新增获赞数',
|
||||
`coin_increment` int NOT NULL DEFAULT '0' COMMENT '新增硬币数',
|
||||
`favorite_increment` int NOT NULL DEFAULT '0' COMMENT '新增收藏数',
|
||||
`view_increment` bigint NOT NULL DEFAULT '0' COMMENT '新增播放数',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_date` (`user_id`,`stat_date`),
|
||||
CONSTRAINT `fk_usd_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户每日统计表';
|
||||
|
||||
-- 用户关注表
|
||||
CREATE TABLE IF NOT EXISTS `user_follow` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`follow_id` bigint NOT NULL COMMENT '关注用户ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_follow` (`user_id`,`follow_id`),
|
||||
KEY `idx_follow` (`follow_id`),
|
||||
CONSTRAINT `fk_uf_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_uf_follow` FOREIGN KEY (`follow_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户关注表';
|
||||
|
||||
-- 用户私信表
|
||||
CREATE TABLE IF NOT EXISTS `user_message` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`sender_id` bigint NOT NULL COMMENT '发送者ID',
|
||||
`receiver_id` bigint NOT NULL COMMENT '接收者ID',
|
||||
`content` text NOT NULL COMMENT '消息内容',
|
||||
`is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读(0:未读,1:已读)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_sender` (`sender_id`),
|
||||
KEY `idx_receiver` (`receiver_id`),
|
||||
KEY `idx_receiver_read` (`receiver_id`,`is_read`),
|
||||
CONSTRAINT `fk_um_sender` FOREIGN KEY (`sender_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_um_receiver` FOREIGN KEY (`receiver_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户私信表';
|
||||
|
||||
-- 用户通知表
|
||||
CREATE TABLE IF NOT EXISTS `user_notification` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`type` tinyint NOT NULL COMMENT '通知类型(1:点赞,2:评论,3:关注,4:系统通知)',
|
||||
`content` text NOT NULL COMMENT '通知内容',
|
||||
`related_id` bigint DEFAULT NULL COMMENT '相关ID',
|
||||
`is_read` tinyint NOT NULL DEFAULT '0' COMMENT '是否已读(0:未读,1:已读)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_user_read` (`user_id`,`is_read`),
|
||||
CONSTRAINT `fk_un_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户通知表';
|
||||
|
||||
-- 用户设置表
|
||||
CREATE TABLE IF NOT EXISTS `user_setting` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`privacy_level` tinyint NOT NULL DEFAULT '1' COMMENT '隐私等级(1:公开,2:仅关注,3:私密)',
|
||||
`comment_notify` tinyint NOT NULL DEFAULT '1' COMMENT '评论通知(0:关闭,1:开启)',
|
||||
`like_notify` tinyint NOT NULL DEFAULT '1' COMMENT '点赞通知(0:关闭,1:开启)',
|
||||
`follow_notify` tinyint NOT NULL DEFAULT '1' COMMENT '关注通知(0:关闭,1:开启)',
|
||||
`system_notify` tinyint NOT NULL DEFAULT '1' COMMENT '系统通知(0:关闭,1:开启)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_us_user` FOREIGN KEY (`user_id`) REFERENCES `user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户设置表';
|
||||
|
||||
-- 4. 内容数据库(video_content)
|
||||
USE `video_content`;
|
||||
|
||||
-- 视频分类表
|
||||
CREATE TABLE IF NOT EXISTS `content_category` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '分类ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '分类名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '分类编码',
|
||||
`parent_id` bigint DEFAULT '0' COMMENT '父分类ID',
|
||||
`level` tinyint NOT NULL DEFAULT '1' COMMENT '分类层级',
|
||||
`sort` int NOT NULL DEFAULT '0' COMMENT '排序',
|
||||
`icon` varchar(256) DEFAULT NULL COMMENT '图标',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`),
|
||||
KEY `idx_parent` (`parent_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频分类表';
|
||||
|
||||
-- 视频标签表
|
||||
CREATE TABLE IF NOT EXISTS `content_tag` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '标签ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '标签名称',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_name` (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频标签表';
|
||||
|
||||
-- 视频信息表
|
||||
CREATE TABLE IF NOT EXISTS `content_video` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`title` varchar(256) NOT NULL COMMENT '视频标题',
|
||||
`description` text COMMENT '视频描述',
|
||||
`cover_url` varchar(256) NOT NULL COMMENT '封面URL',
|
||||
`video_url` varchar(256) NOT NULL COMMENT '视频URL',
|
||||
`duration` int NOT NULL COMMENT '视频时长(秒)',
|
||||
`width` int NOT NULL COMMENT '视频宽度',
|
||||
`height` int NOT NULL COMMENT '视频高度',
|
||||
`format` varchar(32) NOT NULL COMMENT '视频格式',
|
||||
`size` bigint NOT NULL COMMENT '视频大小(字节)',
|
||||
`category_id` bigint NOT NULL COMMENT '分类ID',
|
||||
`status` tinyint NOT NULL DEFAULT '0' COMMENT '状态(0:审核中,1:已发布,2:已下架,3:审核不通过)',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`coin_count` int NOT NULL DEFAULT '0' COMMENT '投币数',
|
||||
`favorite_count` int NOT NULL DEFAULT '0' COMMENT '收藏数',
|
||||
`comment_count` int NOT NULL DEFAULT '0' COMMENT '评论数',
|
||||
`view_count` bigint NOT NULL DEFAULT '0' COMMENT '播放数',
|
||||
`share_count` int NOT NULL DEFAULT '0' COMMENT '分享数',
|
||||
`danmaku_count` int NOT NULL DEFAULT '0' COMMENT '弹幕数',
|
||||
`is_recommend` tinyint NOT NULL DEFAULT '0' COMMENT '是否推荐(0:否,1:是)',
|
||||
`is_top` tinyint NOT NULL DEFAULT '0' COMMENT '是否置顶(0:否,1:是)',
|
||||
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_status` (`user_id`, `status`),
|
||||
KEY `idx_category_status` (`category_id`, `status`),
|
||||
KEY `idx_recommend` (`is_recommend`),
|
||||
KEY `idx_top` (`is_top`),
|
||||
FULLTEXT KEY `ft_title_desc` (`title`,`description`),
|
||||
CONSTRAINT `fk_cv_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cv_category` FOREIGN KEY (`category_id`) REFERENCES `content_category` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频信息表';
|
||||
|
||||
-- 视频标签关联表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_tag` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`tag_id` bigint NOT NULL COMMENT '标签ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_tag` (`video_id`,`tag_id`),
|
||||
KEY `idx_tag` (`tag_id`),
|
||||
CONSTRAINT `fk_cvt_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvt_tag` FOREIGN KEY (`tag_id`) REFERENCES `content_tag` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频标签关联表';
|
||||
|
||||
-- 视频统计表(按天)
|
||||
CREATE TABLE IF NOT EXISTS `content_video_stat_daily` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`stat_date` date NOT NULL COMMENT '统计日期',
|
||||
`like_increment` int NOT NULL DEFAULT '0' COMMENT '新增点赞数',
|
||||
`coin_increment` int NOT NULL DEFAULT '0' COMMENT '新增投币数',
|
||||
`favorite_increment` int NOT NULL DEFAULT '0' COMMENT '新增收藏数',
|
||||
`comment_increment` int NOT NULL DEFAULT '0' COMMENT '新增评论数',
|
||||
`view_increment` bigint NOT NULL DEFAULT '0' COMMENT '新增播放数',
|
||||
`share_increment` int NOT NULL DEFAULT '0' COMMENT '新增分享数',
|
||||
`danmaku_increment` int NOT NULL DEFAULT '0' COMMENT '新增弹幕数',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_date` (`video_id`,`stat_date`),
|
||||
CONSTRAINT `fk_cvsd_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频每日统计表';
|
||||
|
||||
-- 视频审核记录表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_review` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`reviewer_id` bigint NOT NULL COMMENT '审核员ID',
|
||||
`status` tinyint NOT NULL COMMENT '审核状态(1:通过,2:不通过)',
|
||||
`reason` varchar(256) DEFAULT NULL COMMENT '审核原因',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_reviewer` (`reviewer_id`),
|
||||
CONSTRAINT `fk_cvr_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvr_reviewer` FOREIGN KEY (`reviewer_id`) REFERENCES `video_auth`.`auth_user` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频审核记录表';
|
||||
|
||||
-- 视频点赞表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_like` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvl_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvl_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频点赞表';
|
||||
|
||||
-- 视频投币表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_coin` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`amount` int NOT NULL DEFAULT '1' COMMENT '投币数量',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvc_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvc_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频投币表';
|
||||
|
||||
-- 用户收藏夹表
|
||||
CREATE TABLE IF NOT EXISTS `content_user_favorite` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '收藏夹ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '收藏夹名称',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '收藏夹描述',
|
||||
`is_private` tinyint NOT NULL DEFAULT '0' COMMENT '是否私有(0:公开,1:私有)',
|
||||
`video_count` int NOT NULL DEFAULT '0' COMMENT '视频数量',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cuf_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户收藏夹表';
|
||||
|
||||
-- 视频收藏表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_favorite` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`favorite_id` bigint NOT NULL COMMENT '收藏夹ID',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user_favorite` (`video_id`,`user_id`,`favorite_id`),
|
||||
KEY `idx_user_favorite` (`user_id`,`favorite_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
CONSTRAINT `fk_cvf_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvf_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvf_favorite` FOREIGN KEY (`favorite_id`) REFERENCES `content_user_favorite` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频收藏表';
|
||||
|
||||
-- 弹幕表
|
||||
CREATE TABLE IF NOT EXISTS `content_danmaku` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '弹幕ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`content` varchar(256) NOT NULL COMMENT '弹幕内容',
|
||||
`color` varchar(16) NOT NULL COMMENT '弹幕颜色',
|
||||
`font_size` tinyint NOT NULL COMMENT '字体大小',
|
||||
`position` tinyint NOT NULL COMMENT '位置(0:滚动,1:顶部,2:底部)',
|
||||
`time` float NOT NULL COMMENT '发送时间(秒)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video_time` (`video_id`,`time`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cd_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cd_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='弹幕表';
|
||||
|
||||
-- 视频播放记录表
|
||||
CREATE TABLE IF NOT EXISTS `content_video_play_record` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`play_time` int NOT NULL DEFAULT '0' COMMENT '播放时长(秒)',
|
||||
`is_finished` tinyint NOT NULL DEFAULT '0' COMMENT '是否看完(0:未看完,1:已看完)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_user` (`video_id`,`user_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cvpr_video` FOREIGN KEY (`video_id`) REFERENCES `content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cvpr_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频播放记录表';
|
||||
|
||||
-- 初始化分类数据
|
||||
INSERT IGNORE INTO `content_category` (`id`, `name`, `code`, `parent_id`, `level`, `sort`) VALUES
|
||||
(1, '生活', 'life', 0, 1, 1),
|
||||
(2, '科技', 'tech', 0, 1, 2),
|
||||
(3, '游戏', 'game', 0, 1, 3),
|
||||
(4, '美食', 'food', 0, 1, 4),
|
||||
(5, '音乐', 'music', 0, 1, 5),
|
||||
(6, '影视', 'movie', 0, 1, 6),
|
||||
(7, '知识', 'knowledge', 0, 1, 7),
|
||||
(8, '数码', 'digital', 2, 2, 1),
|
||||
(9, '软件', 'software', 2, 2, 2),
|
||||
(10, '硬件', 'hardware', 2, 2, 3),
|
||||
(11, '手机游戏', 'mobile_game', 3, 2, 1),
|
||||
(12, '电脑游戏', 'pc_game', 3, 2, 2),
|
||||
(13, '主机游戏', 'console_game', 3, 2, 3);
|
||||
|
||||
-- 5. 评论数据库(video_comment)
|
||||
USE `video_comment`;
|
||||
|
||||
-- 评论表
|
||||
CREATE TABLE IF NOT EXISTS `comment` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`content` text NOT NULL COMMENT '评论内容',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`reply_count` int NOT NULL DEFAULT '0' COMMENT '回复数',
|
||||
`top_status` tinyint NOT NULL DEFAULT '0' COMMENT '置顶状态(0:普通,1:置顶)',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:删除,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_video_top` (`video_id`,`top_status`),
|
||||
FULLTEXT KEY `ft_content` (`content`),
|
||||
CONSTRAINT `fk_c_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_c_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论表';
|
||||
|
||||
-- 评论回复表
|
||||
CREATE TABLE IF NOT EXISTS `comment_reply` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '回复ID',
|
||||
`comment_id` bigint NOT NULL COMMENT '评论ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`reply_to_id` bigint DEFAULT NULL COMMENT '回复目标用户ID',
|
||||
`content` text NOT NULL COMMENT '回复内容',
|
||||
`like_count` int NOT NULL DEFAULT '0' COMMENT '点赞数',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:删除,1:正常)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_comment` (`comment_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
KEY `idx_reply_to` (`reply_to_id`),
|
||||
KEY `idx_video_time` (`video_id`, `create_time`),
|
||||
FULLTEXT KEY `ft_content` (`content`),
|
||||
CONSTRAINT `fk_cr_comment` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cr_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`),
|
||||
CONSTRAINT `fk_cr_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cr_reply_to` FOREIGN KEY (`reply_to_id`) REFERENCES `video_user`.`user_info` (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论回复表';
|
||||
|
||||
-- 评论点赞表
|
||||
CREATE TABLE IF NOT EXISTS `comment_like` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`comment_id` bigint NOT NULL COMMENT '评论ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`type` tinyint NOT NULL COMMENT '类型(1:评论,2:回复)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_comment_user_type` (`comment_id`,`user_id`,`type`),
|
||||
KEY `idx_user` (`user_id`),
|
||||
CONSTRAINT `fk_cl_comment` FOREIGN KEY (`comment_id`) REFERENCES `comment` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_cl_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='评论点赞表';
|
||||
|
||||
-- 6. 推荐数据库(video_recommend)
|
||||
USE `video_recommend`;
|
||||
|
||||
-- 用户兴趣标签表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_interest` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`tag_id` bigint NOT NULL COMMENT '标签ID',
|
||||
`weight` float NOT NULL DEFAULT '1.0' COMMENT '权重',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_tag` (`user_id`,`tag_id`),
|
||||
KEY `idx_tag` (`tag_id`),
|
||||
CONSTRAINT `fk_rui_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rui_tag` FOREIGN KEY (`tag_id`) REFERENCES `video_content`.`content_tag` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户兴趣标签表';
|
||||
|
||||
-- 用户行为记录表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_behavior` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`behavior_type` tinyint NOT NULL COMMENT '行为类型(1:浏览,2:点赞,3:收藏,4:评论,5:分享,6:完整观看)',
|
||||
`behavior_weight` float NOT NULL DEFAULT '1.0' COMMENT '行为权重',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_user_video` (`user_id`,`video_id`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
KEY `idx_user_behavior` (`user_id`,`behavior_type`),
|
||||
KEY `idx_create_time` (`create_time`),
|
||||
CONSTRAINT `fk_rub_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rub_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户行为记录表';
|
||||
|
||||
-- 视频相似度表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_video_similarity` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`similar_video_id` bigint NOT NULL COMMENT '相似视频ID',
|
||||
`similarity` float NOT NULL COMMENT '相似度',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_similar` (`video_id`,`similar_video_id`),
|
||||
KEY `idx_similar_video` (`similar_video_id`),
|
||||
CONSTRAINT `fk_rvs_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rvs_similar_video` FOREIGN KEY (`similar_video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='视频相似度表';
|
||||
|
||||
-- 用户推荐表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_user_recommendation` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`user_id` bigint NOT NULL COMMENT '用户ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`recommend_type` tinyint NOT NULL COMMENT '推荐类型(1:基于内容,2:协同过滤,3:热门推荐,4:新视频推荐)',
|
||||
`score` float NOT NULL COMMENT '推荐分数',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_user_video_type` (`user_id`,`video_id`,`recommend_type`),
|
||||
KEY `idx_user_type` (`user_id`,`recommend_type`),
|
||||
KEY `idx_video` (`video_id`),
|
||||
CONSTRAINT `fk_rur_user` FOREIGN KEY (`user_id`) REFERENCES `video_user`.`user_info` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_rur_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户推荐表';
|
||||
|
||||
-- 热门视频表
|
||||
CREATE TABLE IF NOT EXISTS `recommend_hot_video` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`video_id` bigint NOT NULL COMMENT '视频ID',
|
||||
`hot_score` float NOT NULL COMMENT '热度分数',
|
||||
`period_type` tinyint NOT NULL COMMENT '周期类型(1:天,2:周,3:月)',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_video_period` (`video_id`,`period_type`),
|
||||
KEY `idx_period_score` (`period_type`,`hot_score`),
|
||||
CONSTRAINT `fk_rhv_video` FOREIGN KEY (`video_id`) REFERENCES `video_content`.`content_video` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='热门视频表';
|
||||
|
||||
-- 7. 管理后台数据库(video_admin)
|
||||
USE `video_admin`;
|
||||
|
||||
-- 管理员表
|
||||
CREATE TABLE IF NOT EXISTS `admin_user` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '管理员ID',
|
||||
`username` varchar(64) NOT NULL COMMENT '用户名',
|
||||
`password` varchar(256) NOT NULL COMMENT '密码(加密)',
|
||||
`salt` varchar(64) NOT NULL COMMENT '加密盐值',
|
||||
`real_name` varchar(64) DEFAULT NULL COMMENT '真实姓名',
|
||||
`avatar` varchar(256) DEFAULT NULL COMMENT '头像',
|
||||
`email` varchar(128) DEFAULT NULL COMMENT '邮箱',
|
||||
`phone` varchar(20) DEFAULT NULL COMMENT '手机号',
|
||||
`status` tinyint NOT NULL DEFAULT '1' COMMENT '状态(0:禁用,1:正常)',
|
||||
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
|
||||
`last_login_ip` varchar(64) DEFAULT NULL COMMENT '最后登录IP',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_username` (`username`),
|
||||
UNIQUE KEY `idx_email` (`email`),
|
||||
UNIQUE KEY `idx_phone` (`phone`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员表';
|
||||
|
||||
-- 管理员角色表
|
||||
CREATE TABLE IF NOT EXISTS `admin_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '角色ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '角色名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '角色编码(ADMIN_开头)',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '角色描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员角色表';
|
||||
|
||||
-- 管理员权限表
|
||||
CREATE TABLE IF NOT EXISTS `admin_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限ID',
|
||||
`name` varchar(64) NOT NULL COMMENT '权限名称',
|
||||
`code` varchar(64) NOT NULL COMMENT '权限编码',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '权限描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_code` (`code`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员权限表';
|
||||
|
||||
-- 管理员角色关联表
|
||||
CREATE TABLE IF NOT EXISTS `admin_user_role` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`admin_id` bigint NOT NULL COMMENT '管理员ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_admin_role` (`admin_id`,`role_id`),
|
||||
CONSTRAINT `fk_aur_admin` FOREIGN KEY (`admin_id`) REFERENCES `admin_user` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_aur_role` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员角色关联表';
|
||||
|
||||
-- 角色权限关联表
|
||||
CREATE TABLE IF NOT EXISTS `admin_role_permission` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`role_id` bigint NOT NULL COMMENT '角色ID',
|
||||
`permission_id` bigint NOT NULL COMMENT '权限ID',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_role_permission` (`role_id`,`permission_id`),
|
||||
CONSTRAINT `fk_arp_role` FOREIGN KEY (`role_id`) REFERENCES `admin_role` (`id`) ON DELETE CASCADE,
|
||||
CONSTRAINT `fk_arp_permission` FOREIGN KEY (`permission_id`) REFERENCES `admin_permission` (`id`) ON DELETE CASCADE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限关联表';
|
||||
|
||||
-- 操作日志表
|
||||
CREATE TABLE IF NOT EXISTS `admin_operation_log` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`admin_id` bigint DEFAULT NULL COMMENT '管理员ID',
|
||||
`username` varchar(64) DEFAULT NULL COMMENT '用户名',
|
||||
`operation` varchar(64) NOT NULL COMMENT '操作',
|
||||
`method` varchar(128) DEFAULT NULL COMMENT '方法名',
|
||||
`params` text COMMENT '参数',
|
||||
`ip` varchar(64) DEFAULT NULL COMMENT 'IP地址',
|
||||
`status` tinyint DEFAULT NULL COMMENT '状态(0:失败,1:成功)',
|
||||
`error_msg` text COMMENT '错误消息',
|
||||
`operation_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_admin` (`admin_id`),
|
||||
KEY `idx_operation_time` (`operation_time`),
|
||||
CONSTRAINT `fk_aol_admin` FOREIGN KEY (`admin_id`) REFERENCES `admin_user` (`id`) ON DELETE SET NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作日志表';
|
||||
|
||||
-- 系统配置表
|
||||
CREATE TABLE IF NOT EXISTS `admin_system_config` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`config_key` varchar(64) NOT NULL COMMENT '配置键',
|
||||
`config_value` text NOT NULL COMMENT '配置值',
|
||||
`description` varchar(256) DEFAULT NULL COMMENT '配置描述',
|
||||
`created_by` varchar(64) DEFAULT 'system' COMMENT '创建人',
|
||||
`updated_by` varchar(64) DEFAULT 'system' COMMENT '更新人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `idx_key` (`config_key`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置表';
|
||||
|
||||
-- 初始化管理员数据
|
||||
INSERT IGNORE INTO `admin_role` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '超级管理员', 'ADMIN_SUPER', '拥有所有权限'),
|
||||
(2, '内容管理员', 'ADMIN_CONTENT', '内容管理权限'),
|
||||
(3, '用户管理员', 'ADMIN_USER', '用户管理权限'),
|
||||
(4, '系统管理员', 'ADMIN_SYSTEM', '系统配置权限');
|
||||
|
||||
INSERT IGNORE INTO `admin_permission` (`id`, `name`, `code`, `description`) VALUES
|
||||
(1, '用户管理', 'user:manage', '用户管理权限'),
|
||||
(2, '角色管理', 'role:manage', '角色管理权限'),
|
||||
(3, '权限管理', 'permission:manage', '权限管理权限'),
|
||||
(4, '视频管理', 'video:manage', '视频管理权限'),
|
||||
(5, '评论管理', 'comment:manage', '评论管理权限'),
|
||||
(6, '标签管理', 'tag:manage', '标签管理权限'),
|
||||
(7, '分类管理', 'category:manage', '分类管理权限'),
|
||||
(8, '推荐管理', 'recommend:manage', '推荐管理权限'),
|
||||
(9, '系统配置', 'system:config', '系统配置权限'),
|
||||
(10, '操作日志', 'operation:log', '操作日志权限');
|
||||
|
||||
INSERT IGNORE INTO `admin_role_permission` (`role_id`, `permission_id`) VALUES
|
||||
(1, 1), (1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9), (1, 10),
|
||||
(2, 4), (2, 5), (2, 6), (2, 7), (2, 8),
|
||||
(3, 1),
|
||||
(4, 9), (4, 10);
|
||||
|
||||
-- 初始化系统配置
|
||||
INSERT IGNORE INTO `admin_system_config` (`config_key`, `config_value`, `description`) VALUES
|
||||
('site_name', '高可用在线视频平台', '网站名称'),
|
||||
('site_logo', '/static/logo.png', '网站Logo'),
|
||||
('site_favicon', '/static/favicon.ico', '网站图标'),
|
||||
('site_copyright', 'Copyright © 2024 XXXXXX', '版权信息'),
|
||||
('video_upload_limit', '1024', '视频上传大小限制(MB)'),
|
||||
('video_review_enabled', '1', '视频审核开关(0:关闭,1:开启)'),
|
||||
('comment_review_enabled', '0', '评论审核开关(0:关闭,1:开启)'),
|
||||
('user_register_enabled', '1', '用户注册开关(0:关闭,1:开启)');
|
||||
@@ -0,0 +1,440 @@
|
||||
-- Nacos 配置初始化脚本
|
||||
-- 在 Nacos 数据库中执行此脚本,创建所有配置
|
||||
-- 注意:tenant_id 为空字符串 '' 表示 public 命名空间
|
||||
-- Nacos 2.x 版本需要 encrypted_data_key 字段
|
||||
|
||||
-- ============================================
|
||||
-- 1. 公共基础配置 (common.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('common.yaml', 'DEFAULT_GROUP', '# 公共配置 - 所有微服务共享
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
hikari:
|
||||
minimum-idle: 5
|
||||
maximum-pool-size: 20
|
||||
idle-timeout: 300000
|
||||
connection-timeout: 20000
|
||||
connection-test-query: SELECT 1
|
||||
keepalive-time: 60000
|
||||
validation-timeout: 3000
|
||||
max-lifetime: 58000
|
||||
|
||||
data:
|
||||
redis:
|
||||
timeout: 10000
|
||||
lettuce:
|
||||
pool:
|
||||
max-active: 200
|
||||
max-wait: -1
|
||||
max-idle: 10
|
||||
min-idle: 0
|
||||
|
||||
mybatis-plus:
|
||||
configuration:
|
||||
map-underscore-to-camel-case: true
|
||||
cache-enabled: false
|
||||
global-config:
|
||||
db-config:
|
||||
id-type: auto
|
||||
logic-delete-field: is_deleted
|
||||
logic-delete-value: 1
|
||||
logic-not-delete-value: 0
|
||||
|
||||
management:
|
||||
endpoints:
|
||||
web:
|
||||
exposure:
|
||||
include: "*"
|
||||
endpoint:
|
||||
health:
|
||||
show-details: always
|
||||
|
||||
feign:
|
||||
circuitbreaker:
|
||||
enabled: true
|
||||
client:
|
||||
config:
|
||||
default:
|
||||
connectTimeout: 5000
|
||||
readTimeout: 5000
|
||||
|
||||
logging:
|
||||
level:
|
||||
com.nuaa.video: info
|
||||
org.springframework.security: info', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 2. 开发环境 Redis 配置 (common-redis-dev.yaml)
|
||||
-- 单机模式
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('common-redis-dev.yaml', 'DEFAULT_GROUP', '# Redis 单机配置 - 开发环境
|
||||
spring:
|
||||
data:
|
||||
redis:
|
||||
host: ${REDIS_HOST:5.180.253.115}
|
||||
port: ${REDIS_PORT:6379}
|
||||
password: ${REDIS_PASSWORD:redis_EsJ8FX}', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 3. 高可用环境 Redis 配置 (common-redis-ha.yaml)
|
||||
-- Sentinel 哨兵模式
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('common-redis-ha.yaml', 'DEFAULT_GROUP', '# Redis Sentinel 高可用配置 - 生产环境
|
||||
spring:
|
||||
data:
|
||||
redis:
|
||||
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}
|
||||
sentinel:
|
||||
master: mymaster
|
||||
nodes: ${REDIS_SENTINEL_NODES:192.168.1.101:26379,192.168.1.102:26379,192.168.1.103:26379}
|
||||
password: ${REDIS_PASSWORD:redis_HA_Cluster_2024}', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 4. Gateway 服务配置 (video-gateway.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-gateway.yaml', 'DEFAULT_GROUP', '# Gateway 服务配置
|
||||
spring:
|
||||
cloud:
|
||||
gateway:
|
||||
discovery:
|
||||
locator:
|
||||
enabled: true
|
||||
lower-case-service-id: true
|
||||
routes:
|
||||
- id: video-auth
|
||||
uri: lb://video-auth
|
||||
predicates:
|
||||
- Path=/auth/**
|
||||
- id: video-user
|
||||
uri: lb://video-user
|
||||
predicates:
|
||||
- Path=/user/**
|
||||
- id: video-content
|
||||
uri: lb://video-content
|
||||
predicates:
|
||||
- Path=/content/**
|
||||
- id: video-comment
|
||||
uri: lb://video-comment
|
||||
predicates:
|
||||
- Path=/comment/**
|
||||
- id: video-recommend
|
||||
uri: lb://video-recommend
|
||||
predicates:
|
||||
- Path=/recommend/**
|
||||
- id: video-admin
|
||||
uri: lb://video-admin
|
||||
predicates:
|
||||
- Path=/admin/**
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8720}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
scg:
|
||||
fallback:
|
||||
mode: response
|
||||
response-body: ''{"code":500,"message":"服务不可用,请稍后再试"}''
|
||||
|
||||
gateway:
|
||||
ignore:
|
||||
urls:
|
||||
- /**/auth/login
|
||||
- /**/auth/register
|
||||
- /**/auth/captcha
|
||||
- /content/video/public/**
|
||||
- /content/category/tree
|
||||
- /content/category/list
|
||||
- /comment/reply/public/**
|
||||
- /comment/public/**
|
||||
- /admin/auth/captcha
|
||||
- /admin/auth/login', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 5. Auth 服务配置 (video-auth.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-auth.yaml', 'DEFAULT_GROUP', '# Auth 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_auth?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 0
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8720}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.auth.entity
|
||||
|
||||
jwt:
|
||||
secret: video-platform-secret-key-2024-nuaa
|
||||
expiration: 86400
|
||||
token-header: Authorization
|
||||
token-prefix: "Bearer "', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 6. User 服务配置 (video-user.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-user.yaml', 'DEFAULT_GROUP', '# User 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_user?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 1
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8721}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.user.entity
|
||||
|
||||
auth:
|
||||
ignore-urls:
|
||||
- /user/profile/public/**
|
||||
- /user/profile/init
|
||||
- /actuator/**
|
||||
|
||||
minio:
|
||||
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
||||
accessKey: minioadmin
|
||||
secretKey: minioadmin123
|
||||
bucketName: video-platform', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 7. Content 服务配置 (video-content.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-content.yaml', 'DEFAULT_GROUP', '# Content 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_content?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 2
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 1024MB
|
||||
max-request-size: 1024MB
|
||||
enabled: true
|
||||
rocketmq:
|
||||
topic-prefix: video-platform-
|
||||
name-server: ${NAMESRV_ADDR:192.168.1.101:9876;192.168.1.102:9876;192.168.1.103:9876}
|
||||
producer:
|
||||
group: video-content-producer
|
||||
send-message-timeout: 3000
|
||||
retry-times-when-send-failed: 3
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8722}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.content.entity
|
||||
|
||||
minio:
|
||||
endpoint: http://${MINIO_HOST:minio}:${MINIO_PORT:9000}
|
||||
accessKey: ${MINIO_ACCESS_KEY:minioadmin}
|
||||
secretKey: ${MINIO_SECRET_KEY:minioadmin123}
|
||||
bucketName: ${MINIO_BUCKET:video-platform}
|
||||
|
||||
ffmpeg:
|
||||
binary:
|
||||
path: ${FFMPEG_PATH:/usr/bin/ffmpeg}
|
||||
probe:
|
||||
path: ${FFPROBE_PATH:/usr/bin/ffprobe}
|
||||
temp:
|
||||
path: ${FFMPEG_TEMP_PATH:/tmp/ffmpeg}
|
||||
|
||||
auth:
|
||||
ignore-urls:
|
||||
- /content/video/public/**
|
||||
- /content/category/list
|
||||
- /content/tag/list
|
||||
- /actuator/**
|
||||
|
||||
jwt:
|
||||
secret: video-platform-secret-key-2024-nuaa
|
||||
expiration: 86400
|
||||
token-header: Authorization
|
||||
token-prefix: "Bearer "', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 8. Comment 服务配置 (video-comment.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-comment.yaml', 'DEFAULT_GROUP', '# Comment 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_comment?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 3
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8723}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.comment.entity
|
||||
global-config:
|
||||
db-config:
|
||||
logic-delete-field: status
|
||||
logic-delete-value: 0
|
||||
logic-not-delete-value: 1
|
||||
|
||||
comment:
|
||||
sensitive-filter:
|
||||
enabled: true
|
||||
review:
|
||||
enabled: false
|
||||
|
||||
jwt:
|
||||
secret: video-platform-secret-key-2024-nuaa
|
||||
expiration: 86400
|
||||
token-header: Authorization
|
||||
token-prefix: "Bearer "
|
||||
|
||||
auth:
|
||||
ignore-urls:
|
||||
- /comment/public/**
|
||||
- /actuator/**', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 9. Recommend 服务配置 (video-recommend.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-recommend.yaml', 'DEFAULT_GROUP', '# Recommend 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_recommend?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 4
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8724}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.recommend.entity
|
||||
|
||||
recommend:
|
||||
hot:
|
||||
default-size: 20
|
||||
refresh-interval: 60
|
||||
weights:
|
||||
view: 1
|
||||
like: 3
|
||||
favorite: 5
|
||||
coin: 5
|
||||
comment: 2
|
||||
share: 3
|
||||
similarity:
|
||||
tag-weight: 0.5
|
||||
category-weight: 0.3
|
||||
behavior-weight: 0.2
|
||||
personalized:
|
||||
default-size: 30
|
||||
behavior-weights:
|
||||
view: 1
|
||||
like: 3
|
||||
favorite: 5
|
||||
coin: 5
|
||||
comment: 2
|
||||
share: 3
|
||||
complete-watch: 4
|
||||
|
||||
jwt:
|
||||
secret: video-platform-secret-key-2024-nuaa
|
||||
expiration: 86400
|
||||
token-header: Authorization
|
||||
token-prefix: "Bearer "
|
||||
|
||||
auth:
|
||||
ignore-urls:
|
||||
- /recommend/hot/**
|
||||
- /recommend/tag/**
|
||||
- /actuator/**', '', '', 'nacos', '');
|
||||
|
||||
-- ============================================
|
||||
-- 10. Admin 服务配置 (video-admin.yaml)
|
||||
-- ============================================
|
||||
INSERT INTO config_info (data_id, group_id, content, tenant_id, app_name, src_user, encrypted_data_key) VALUES
|
||||
('video-admin.yaml', 'DEFAULT_GROUP', '# Admin 服务配置
|
||||
spring:
|
||||
datasource:
|
||||
url: jdbc:mysql://${MYSQL_HOST:mysql}:${MYSQL_PORT:3306}/video_admin?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&allowMultiQueries=true
|
||||
username: root
|
||||
password: ${MYSQL_ROOT_PASSWORD:root123456}
|
||||
data:
|
||||
redis:
|
||||
database: 5
|
||||
cloud:
|
||||
sentinel:
|
||||
transport:
|
||||
dashboard: ${SENTINEL_DASHBOARD_HOST:sentinel}:${SENTINEL_DASHBOARD_PORT:8880}
|
||||
port: ${SPRING_CLOUD_SENTINEL_TRANSPORT_PORT:8725}
|
||||
client-ip: ${SPRING_CLOUD_SENTINEL_TRANSPORT_CLIENT_IP:}
|
||||
eager: true
|
||||
|
||||
mybatis-plus:
|
||||
type-aliases-package: com.nuaa.video.admin.entity
|
||||
global-config:
|
||||
db-config:
|
||||
logic-delete-field: status
|
||||
logic-delete-value: 0
|
||||
logic-not-delete-value: 1
|
||||
|
||||
jwt:
|
||||
secret: video-platform-admin-secret-key-2024-nuaa
|
||||
expiration: 86400
|
||||
token-header: Authorization
|
||||
token-prefix: "Bearer "
|
||||
|
||||
login:
|
||||
retry-count: 5
|
||||
lock-time: 30
|
||||
|
||||
operation-log:
|
||||
enabled: true
|
||||
exclude-paths:
|
||||
- /admin/auth/login
|
||||
- /admin/auth/logout
|
||||
- /admin/auth/captcha
|
||||
- /actuator/**', '', '', 'nacos', '');
|
||||
@@ -0,0 +1,176 @@
|
||||
-- 创建Nacos配置数据库
|
||||
CREATE DATABASE IF NOT EXISTS nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
USE nacos_config;
|
||||
|
||||
-- Nacos数据库初始化脚本
|
||||
CREATE TABLE IF NOT EXISTS `config_info` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',
|
||||
`content` longtext NOT NULL COMMENT 'content',
|
||||
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
`src_user` text COMMENT 'source user',
|
||||
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
|
||||
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
|
||||
`c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',
|
||||
`c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',
|
||||
`effect` varchar(64) DEFAULT NULL COMMENT '配置生效目标',
|
||||
`type` varchar(64) DEFAULT NULL COMMENT '配置类型',
|
||||
`c_schema` text COMMENT '配置模式',
|
||||
`encrypted_data_key` text NOT NULL COMMENT '密钥',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `config_info_aggr` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
|
||||
`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',
|
||||
`content` longtext NOT NULL COMMENT '内容',
|
||||
`gmt_modified` datetime NOT NULL COMMENT '修改时间',
|
||||
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum` (`data_id`,`group_id`,`tenant_id`,`datum_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='增加租户字段';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `config_info_beta` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
|
||||
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
|
||||
`content` longtext NOT NULL COMMENT 'content',
|
||||
`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',
|
||||
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
`src_user` text COMMENT 'source user',
|
||||
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
|
||||
`encrypted_data_key` text NOT NULL COMMENT '密钥',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_configinfobeta_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info_beta';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `config_info_tag` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
|
||||
`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',
|
||||
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
|
||||
`content` longtext NOT NULL COMMENT 'content',
|
||||
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
`src_user` text COMMENT 'source user',
|
||||
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_configinfotag_datagrouptenanttag` (`data_id`,`group_id`,`tenant_id`,`tag_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_info_tag';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `config_tags_relation` (
|
||||
`id` bigint NOT NULL COMMENT 'id',
|
||||
`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',
|
||||
`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
|
||||
`nid` bigint NOT NULL AUTO_INCREMENT COMMENT 'nid',
|
||||
PRIMARY KEY (`nid`),
|
||||
UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),
|
||||
KEY `idx_tenant_id` (`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='config_tag_relation';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `group_capacity` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表示整个集群',
|
||||
`quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
|
||||
`usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
|
||||
`max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
|
||||
`max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数,,0表示使用默认值',
|
||||
`max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
|
||||
`max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_group_id` (`group_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='集群、各Group容量信息表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `his_config_info` (
|
||||
`id` bigint unsigned NOT NULL COMMENT 'id',
|
||||
`nid` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid',
|
||||
`data_id` varchar(255) NOT NULL COMMENT 'data_id',
|
||||
`group_id` varchar(128) NOT NULL COMMENT 'group_id',
|
||||
`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',
|
||||
`content` longtext NOT NULL COMMENT 'content',
|
||||
`md5` varchar(32) DEFAULT NULL COMMENT 'md5',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
`src_user` text COMMENT 'source user',
|
||||
`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
|
||||
`op_type` char(10) DEFAULT NULL COMMENT 'operation type',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT '租户字段',
|
||||
`encrypted_data_key` text NOT NULL COMMENT '密钥',
|
||||
PRIMARY KEY (`nid`),
|
||||
KEY `idx_gmt_create` (`gmt_create`),
|
||||
KEY `idx_gmt_modified` (`gmt_modified`),
|
||||
KEY `idx_did` (`data_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='多租户改造';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `tenant_capacity` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',
|
||||
`quota` int unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表示使用默认值',
|
||||
`usage` int unsigned NOT NULL DEFAULT '0' COMMENT '使用量',
|
||||
`max_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个配置大小上限,单位为字节,0表示使用默认值',
|
||||
`max_aggr_count` int unsigned NOT NULL DEFAULT '0' COMMENT '聚合子配置最大个数',
|
||||
`max_aggr_size` int unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的子配置大小上限,单位为字节,0表示使用默认值',
|
||||
`max_history_count` int unsigned NOT NULL DEFAULT '0' COMMENT '最大变更历史数量',
|
||||
`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_tenant_id` (`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='租户容量信息表';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `tenant_info` (
|
||||
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
|
||||
`kp` varchar(128) NOT NULL COMMENT 'kp',
|
||||
`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',
|
||||
`tenant_name` varchar(128) DEFAULT '' COMMENT 'tenant_name',
|
||||
`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',
|
||||
`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',
|
||||
`gmt_create` bigint NOT NULL COMMENT '创建时间',
|
||||
`gmt_modified` bigint NOT NULL COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),
|
||||
KEY `idx_tenant_id` (`tenant_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin COMMENT='tenant_info';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`username` varchar(50) NOT NULL COMMENT 'username',
|
||||
`password` varchar(500) NOT NULL COMMENT 'password',
|
||||
`enabled` tinyint(1) NOT NULL COMMENT 'enabled',
|
||||
PRIMARY KEY (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `roles` (
|
||||
`username` varchar(50) NOT NULL COMMENT 'username',
|
||||
`role` varchar(50) NOT NULL COMMENT 'role',
|
||||
UNIQUE KEY `uk_username_role` (`username`,`role`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `permissions` (
|
||||
`role` varchar(50) NOT NULL COMMENT 'role',
|
||||
`resource` varchar(255) NOT NULL COMMENT 'resource',
|
||||
`action` varchar(8) NOT NULL COMMENT 'action',
|
||||
UNIQUE KEY `uk_role_permission` (`role`,`resource`,`action`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_bin;
|
||||
|
||||
-- 初始化Nacos用户
|
||||
INSERT INTO users (username, password, enabled) VALUES ('nacos', '$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', 1);
|
||||
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');
|
||||
Reference in New Issue
Block a user