1073 lines
53 KiB
SQL
1073 lines
53 KiB
SQL
-- --------------------------------------------------------------------------------------
|
||
-- 系统基础表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 租户表
|
||
CREATE TABLE sys_tenant
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
code VARCHAR(50) NOT NULL COMMENT '租户编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '租户名称',
|
||
address VARCHAR(255) NULL COMMENT '租户地址',
|
||
contact_name VARCHAR(50) NULL COMMENT '联系人姓名',
|
||
contact_phone VARCHAR(20) NULL COMMENT '联系人电话',
|
||
email VARCHAR(100) NULL COMMENT '联系人邮箱',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
CONSTRAINT UK_tenant_code UNIQUE (code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
|
||
|
||
|
||
-- 部门表
|
||
CREATE TABLE sys_department
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
code VARCHAR(50) NOT NULL COMMENT '部门编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '部门名称',
|
||
description VARCHAR(255) NULL COMMENT '部门描述',
|
||
leader_id BIGINT NULL COMMENT '部门负责人ID',
|
||
leader_name VARCHAR(50) NULL COMMENT '部门负责人姓名',
|
||
parent_id BIGINT NULL COMMENT '父部门ID',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
CONSTRAINT UK_department_code UNIQUE (code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表';
|
||
|
||
-- 用户表
|
||
CREATE TABLE sys_user
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
username VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
password VARCHAR(255) NOT NULL COMMENT '密码',
|
||
nickname VARCHAR(50) NULL COMMENT '昵称',
|
||
email VARCHAR(100) NULL COMMENT '邮箱',
|
||
phone VARCHAR(20) NULL COMMENT '手机号',
|
||
department_id BIGINT NULL COMMENT '所属部门ID',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
CONSTRAINT UK_user_username UNIQUE (username),
|
||
CONSTRAINT FK_user_department FOREIGN KEY (department_id) REFERENCES sys_department (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
|
||
-- 系统参数表
|
||
CREATE TABLE sys_param
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
code VARCHAR(100) NOT NULL COMMENT '参数编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '参数名称',
|
||
value TEXT COMMENT '参数值',
|
||
type VARCHAR(50) NOT NULL COMMENT '参数类型',
|
||
description VARCHAR(255) NULL COMMENT '参数描述',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
CONSTRAINT UK_sys_param_code UNIQUE (code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统参数表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 权限管理相关表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 菜单表
|
||
CREATE TABLE sys_menu
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
name VARCHAR(100) NOT NULL COMMENT '菜单名称',
|
||
path VARCHAR(200) NULL COMMENT '路由路径',
|
||
component VARCHAR(255) NULL COMMENT '组件路径',
|
||
icon VARCHAR(100) NULL COMMENT '菜单图标',
|
||
permission VARCHAR(100) NULL COMMENT '权限标识',
|
||
type TINYINT NOT NULL COMMENT '菜单类型(1:目录 2:菜单 3:按钮)',
|
||
parent_id BIGINT NULL COMMENT '父菜单ID',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
|
||
hidden BIT NOT NULL DEFAULT 0 COMMENT '是否隐藏(0:显示,1:隐藏)',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
INDEX IDX_parent_id (parent_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='菜单表';
|
||
|
||
-- 角色表
|
||
CREATE TABLE sys_role
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
code VARCHAR(100) NOT NULL COMMENT '角色编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '角色名称',
|
||
type TINYINT NOT NULL DEFAULT 2 COMMENT '角色类型(1:系统角色,2:自定义角色)',
|
||
description VARCHAR(255) NULL COMMENT '角色描述',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '显示顺序',
|
||
is_admin BIT NOT NULL DEFAULT 0 COMMENT '是否超级管理员(0:否,1:是,超级管理员拥有所有权限且不可删除)',
|
||
|
||
CONSTRAINT UK_role_code UNIQUE (code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色表';
|
||
|
||
-- 角色标签表
|
||
CREATE TABLE sys_role_tag
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
name VARCHAR(50) NOT NULL COMMENT '标签名称',
|
||
color VARCHAR(20) NULL COMMENT '标签颜色'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色标签表';
|
||
|
||
-- 角色标签关联表
|
||
CREATE TABLE sys_role_tag_relation
|
||
(
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
tag_id BIGINT NOT NULL COMMENT '标签ID',
|
||
|
||
PRIMARY KEY (role_id, tag_id),
|
||
CONSTRAINT FK_role_tag_role FOREIGN KEY (role_id) REFERENCES sys_role (id),
|
||
CONSTRAINT FK_role_tag_tag FOREIGN KEY (tag_id) REFERENCES sys_role_tag (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色标签关联表';
|
||
|
||
-- 用户角色关联表
|
||
CREATE TABLE sys_user_role
|
||
(
|
||
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
|
||
CONSTRAINT UK_user_role UNIQUE (user_id, role_id),
|
||
CONSTRAINT FK_user_role_user FOREIGN KEY (user_id) REFERENCES sys_user (id),
|
||
CONSTRAINT FK_user_role_role FOREIGN KEY (role_id) REFERENCES sys_role (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户角色关联表';
|
||
|
||
-- 角色菜单关联表
|
||
CREATE TABLE sys_role_menu
|
||
(
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
menu_id BIGINT NOT NULL COMMENT '菜单ID',
|
||
|
||
PRIMARY KEY (role_id, menu_id),
|
||
CONSTRAINT FK_role_menu_role FOREIGN KEY (role_id) REFERENCES sys_role (id),
|
||
CONSTRAINT FK_role_menu_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色菜单关联表';
|
||
|
||
-- 权限模板表
|
||
CREATE TABLE sys_permission_template
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
code VARCHAR(100) NOT NULL COMMENT '模板编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '模板名称',
|
||
type TINYINT NOT NULL DEFAULT 1 COMMENT '模板类型(1:系统模板,2:自定义模板)',
|
||
description VARCHAR(255) NULL COMMENT '模板描述',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
|
||
CONSTRAINT UK_template_code UNIQUE (code)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='权限模板表';
|
||
|
||
-- 模板菜单关联表
|
||
CREATE TABLE sys_template_menu
|
||
(
|
||
template_id BIGINT NOT NULL COMMENT '模板ID',
|
||
menu_id BIGINT NOT NULL COMMENT '菜单ID',
|
||
|
||
PRIMARY KEY (template_id, menu_id),
|
||
CONSTRAINT FK_template_menu_template FOREIGN KEY (template_id) REFERENCES sys_permission_template (id),
|
||
CONSTRAINT FK_template_menu_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='模板菜单关联表';
|
||
|
||
-- 权限表
|
||
CREATE TABLE sys_permission
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
menu_id BIGINT NOT NULL COMMENT '关联的菜单ID',
|
||
code VARCHAR(100) NOT NULL COMMENT '权限编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '权限名称',
|
||
type VARCHAR(50) NOT NULL DEFAULT 'FUNCTION' COMMENT '权限类型(MENU:菜单,FUNCTION:功能,API:接口)',
|
||
sort INT NULL DEFAULT 0 COMMENT '排序',
|
||
|
||
CONSTRAINT UK_permission_code UNIQUE (code),
|
||
CONSTRAINT FK_permission_menu FOREIGN KEY (menu_id) REFERENCES sys_menu (id),
|
||
INDEX IDX_menu_id (menu_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统权限表';
|
||
|
||
-- 角色权限关联表
|
||
CREATE TABLE sys_role_permission
|
||
(
|
||
role_id BIGINT NOT NULL COMMENT '角色ID',
|
||
permission_id BIGINT NOT NULL COMMENT '权限ID',
|
||
|
||
PRIMARY KEY (role_id, permission_id),
|
||
CONSTRAINT FK_role_permission_role FOREIGN KEY (role_id) REFERENCES sys_role (id),
|
||
CONSTRAINT FK_role_permission_permission FOREIGN KEY (permission_id) REFERENCES sys_permission (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色权限关联表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 外部系统集成相关表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 外部系统表
|
||
CREATE TABLE sys_external_system
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
name VARCHAR(100) NOT NULL COMMENT '系统名称',
|
||
type VARCHAR(50) NOT NULL COMMENT '系统类型(JENKINS/GIT/ZENTAO等)',
|
||
url VARCHAR(255) NOT NULL COMMENT '系统访问地址',
|
||
remark TEXT NULL COMMENT '备注说明',
|
||
sort INT NULL DEFAULT 0 COMMENT '排序',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
auth_type VARCHAR(50) NOT NULL COMMENT '认证方式(BASIC/TOKEN/OAUTH等)',
|
||
username VARCHAR(100) NULL COMMENT '用户名',
|
||
password VARCHAR(255) NULL COMMENT '密码',
|
||
token VARCHAR(255) NULL COMMENT '访问令牌',
|
||
sync_status VARCHAR(50) NULL COMMENT '同步状态(SUCCESS/FAILED/RUNNING)',
|
||
last_sync_time DATETIME(6) NULL COMMENT '最后同步时间',
|
||
last_connect_time DATETIME(6) NULL COMMENT '最近连接成功时间',
|
||
config JSON NULL COMMENT '系统特有配置',
|
||
|
||
CONSTRAINT UK_external_system_name UNIQUE (name),
|
||
CONSTRAINT UK_external_system_type_url UNIQUE (type, url)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='外部系统表';
|
||
|
||
-- 代码仓库组表
|
||
|
||
CREATE TABLE deploy_repo_group
|
||
(
|
||
-- 基础字段
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
-- 业务字段
|
||
name VARCHAR(100) NOT NULL COMMENT '仓库组名',
|
||
description VARCHAR(500) NULL COMMENT '仓库组描述',
|
||
parent_id BIGINT NULL COMMENT '父级仓库组ID',
|
||
full_name VARCHAR(255) NULL COMMENT '完整名称(包含层级关系)',
|
||
full_path VARCHAR(255) NULL COMMENT '完整路径',
|
||
path VARCHAR(200) NOT NULL COMMENT '仓库组路径',
|
||
external_system_id BIGINT NOT NULL COMMENT '外部系统ID',
|
||
avatar_url VARCHAR(255) NULL COMMENT '头像URL',
|
||
web_url VARCHAR(255) NULL COMMENT '网页URL',
|
||
visibility ENUM('private', 'internal', 'public') NOT NULL DEFAULT 'private' COMMENT '可见性:private-私有,internal-内部,public-公开',
|
||
sort INT DEFAULT 0 COMMENT '排序号',
|
||
repo_group_id BIGINT NOT NULL COMMENT 'Git系统中的组ID',
|
||
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除'
|
||
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='代码仓库组表';
|
||
|
||
-- 代码仓库项目表
|
||
CREATE TABLE deploy_repo_project
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
|
||
name VARCHAR(255) NOT NULL COMMENT '项目名称',
|
||
path VARCHAR(255) NOT NULL COMMENT '项目路径',
|
||
description TEXT NULL COMMENT '项目描述',
|
||
visibility VARCHAR(50) NULL COMMENT '可见性',
|
||
default_branch VARCHAR(100) NULL COMMENT '默认分支',
|
||
web_url VARCHAR(500) NULL COMMENT 'Web URL',
|
||
ssh_url VARCHAR(500) NULL COMMENT 'SSH URL',
|
||
http_url VARCHAR(500) NULL COMMENT 'HTTP URL',
|
||
last_activity_at DATETIME(6) NULL COMMENT '最后活动时间',
|
||
name_with_namespace VARCHAR(500) NULL COMMENT '带命名空间的名称',
|
||
path_with_namespace VARCHAR(500) NULL COMMENT '带命名空间的路径',
|
||
created_at DATETIME(6) NULL COMMENT '创建时间',
|
||
|
||
external_system_id BIGINT NOT NULL COMMENT '外部系统ID',
|
||
repo_group_id BIGINT NOT NULL COMMENT '项目ID',
|
||
repo_project_id BIGINT NOT NULL COMMENT '项目ID',
|
||
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
CONSTRAINT FK_repo_project_external_system FOREIGN KEY (external_system_id) REFERENCES sys_external_system (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='Git仓库项目表';
|
||
|
||
-- 代码仓库分支表
|
||
CREATE TABLE deploy_repo_branch
|
||
(
|
||
-- 基础字段
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
-- 业务字段
|
||
name VARCHAR(100) NOT NULL COMMENT '分支名称',
|
||
is_default_branch BIT DEFAULT 0 COMMENT '是否为默认分支:0-否,1-是',
|
||
can_push BIT DEFAULT 1 COMMENT '是否可推送:0-否,1-是',
|
||
developers_can_push BIT DEFAULT 1 COMMENT '开发者是否可推送:0-否,1-是',
|
||
developers_can_merge BIT DEFAULT 1 COMMENT '开发者是否可合并:0-否,1-是',
|
||
last_commit_id VARCHAR(64) NULL COMMENT '最新提交ID',
|
||
commit_message TEXT NULL COMMENT '最新提交信息',
|
||
commit_author VARCHAR(100) NULL COMMENT '最新提交作者',
|
||
commit_date DATETIME(6) NULL COMMENT '最新提交时间(authored_date)',
|
||
last_update_time DATETIME(6) NULL COMMENT '分支最后更新时间(committed_date)',
|
||
web_url VARCHAR(1000) NULL COMMENT '网页URL',
|
||
project_id BIGINT NOT NULL COMMENT '所属项目ID',
|
||
external_system_id BIGINT NOT NULL COMMENT '外部系统ID',
|
||
repo_project_id BIGINT NOT NULL COMMENT 'GitLab的真实project_id',
|
||
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除'
|
||
|
||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT ='代码仓库分支表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 工作流相关表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 工作流分类表
|
||
CREATE TABLE workflow_category
|
||
(
|
||
-- 主键
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
|
||
-- 基础信息
|
||
name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一,如SCRIPT_EXECUTION)',
|
||
description VARCHAR(500) NULL COMMENT '分类描述',
|
||
icon VARCHAR(50) NULL COMMENT '图标',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||
|
||
-- 支持的触发方式(JSON数组,如["MANUAL","SCHEDULED"])
|
||
supported_triggers JSON NULL COMMENT '支持的触发方式列表',
|
||
|
||
-- 状态
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
-- 约束和索引
|
||
UNIQUE KEY uk_code (code),
|
||
INDEX idx_enabled (enabled),
|
||
INDEX idx_deleted (deleted),
|
||
INDEX idx_sort (sort)
|
||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||
COMMENT = '工作流分类表';
|
||
|
||
CREATE TABLE form_category
|
||
(
|
||
-- 主键
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
|
||
-- 基础信息
|
||
name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
code VARCHAR(50) NOT NULL COMMENT '分类编码(唯一)',
|
||
description VARCHAR(500) NULL COMMENT '分类描述',
|
||
icon VARCHAR(50) NULL COMMENT '图标',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序',
|
||
|
||
-- 状态
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
-- 约束和索引
|
||
UNIQUE KEY uk_code (code),
|
||
INDEX idx_enabled (enabled),
|
||
INDEX idx_deleted (deleted),
|
||
INDEX idx_sort (sort)
|
||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||
COMMENT = '表单分类表';
|
||
|
||
-- 表单定义表
|
||
CREATE TABLE form_definition
|
||
(
|
||
-- 主键
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
|
||
-- 基础信息
|
||
name VARCHAR(255) NOT NULL COMMENT '表单名称',
|
||
`key` VARCHAR(255) NOT NULL COMMENT '表单标识(业务唯一)',
|
||
form_version INT NOT NULL DEFAULT 1 COMMENT '表单版本号',
|
||
category_id BIGINT NULL COMMENT '表单分类ID(外键关联form_category)',
|
||
description TEXT NULL COMMENT '表单描述',
|
||
|
||
-- 表单配置
|
||
`schema` JSON NOT NULL COMMENT '表单Schema(前端设计器导出的JSON结构)',
|
||
tags JSON NULL COMMENT '标签(用于分类和搜索)',
|
||
|
||
-- 表单属性
|
||
status VARCHAR(50) NOT NULL DEFAULT 'DRAFT' COMMENT '状态(DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)',
|
||
is_template BIT NULL DEFAULT 0 COMMENT '是否为模板',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
-- 约束和索引
|
||
UNIQUE KEY uk_key_version (`key`, form_version),
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_status (status),
|
||
INDEX idx_is_template (is_template),
|
||
INDEX idx_deleted (deleted),
|
||
|
||
-- 外键约束
|
||
CONSTRAINT fk_form_definition_category FOREIGN KEY (category_id) REFERENCES form_category (id)
|
||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||
COMMENT = '表单定义表';
|
||
|
||
-- 工作流定义表
|
||
CREATE TABLE workflow_definition
|
||
(
|
||
-- 主键
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
|
||
-- 基础信息
|
||
name VARCHAR(255) NOT NULL COMMENT '流程名称',
|
||
`key` VARCHAR(255) NOT NULL COMMENT '流程标识',
|
||
category_id BIGINT NULL COMMENT '流程分类ID(外键关联workflow_category)',
|
||
form_definition_id BIGINT NULL COMMENT '启动表单ID(外键关联form_definition)',
|
||
process_definition_id VARCHAR(100) NULL COMMENT '工作流定义ID',
|
||
flow_version INT NOT NULL COMMENT '流程版本',
|
||
description TEXT COMMENT '流程描述',
|
||
|
||
-- 流程配置
|
||
bpmn_xml TEXT COMMENT 'BPMN XML内容',
|
||
graph JSON COMMENT '流程图数据,包含节点和连线的位置、样式等信息',
|
||
|
||
-- 流程属性
|
||
status VARCHAR(50) NOT NULL COMMENT '流程状态(DRAFT-草稿、PUBLISHED-已发布、DISABLED-已禁用)',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
-- 约束和索引
|
||
UNIQUE KEY uk_key_version (`key`, flow_version),
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_form_definition_id (form_definition_id),
|
||
INDEX idx_status (status),
|
||
INDEX idx_deleted (deleted),
|
||
CONSTRAINT fk_workflow_definition_category FOREIGN KEY (category_id) REFERENCES workflow_category (id),
|
||
CONSTRAINT fk_workflow_definition_form FOREIGN KEY (form_definition_id) REFERENCES form_definition (id)
|
||
) ENGINE = InnoDB
|
||
DEFAULT CHARSET = utf8mb4
|
||
COLLATE = utf8mb4_unicode_ci COMMENT ='工作流定义表';
|
||
|
||
-- 创建工作流节点定义表
|
||
CREATE TABLE workflow_node_definition
|
||
(
|
||
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||
node_type VARCHAR(50) NOT NULL COMMENT '节点类型',
|
||
node_code VARCHAR(50) NOT NULL COMMENT '节点编码',
|
||
node_name VARCHAR(100) NOT NULL COMMENT '节点名称',
|
||
description VARCHAR(500) COMMENT '节点描述',
|
||
category VARCHAR(50) COMMENT '节点分类',
|
||
ui_variables JSON NOT NULL COMMENT '节点UI',
|
||
panel_variables_schema JSON NOT NULL COMMENT '节点属性',
|
||
local_variables_schema JSON NOT NULL COMMENT '节点环境变量',
|
||
form_variables_schema JSON COMMENT '节点表单',
|
||
enabled BOOLEAN NOT NULL DEFAULT TRUE COMMENT '是否启用',
|
||
|
||
create_time DATETIME NOT NULL COMMENT '创建时间',
|
||
create_by VARCHAR(50) NOT NULL COMMENT '创建人',
|
||
update_time DATETIME NOT NULL COMMENT '更新时间',
|
||
update_by VARCHAR(50) NOT NULL COMMENT '更新人',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BOOLEAN NOT NULL DEFAULT FALSE COMMENT '是否删除',
|
||
PRIMARY KEY (id),
|
||
UNIQUE KEY uk_node_type (node_type)
|
||
) ENGINE = InnoDB
|
||
DEFAULT CHARSET = utf8mb4
|
||
COLLATE = utf8mb4_unicode_ci COMMENT ='工作流节点定义表';
|
||
|
||
-- 表单数据表
|
||
CREATE TABLE form_data
|
||
(
|
||
-- 主键
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
|
||
-- 关联表单定义
|
||
form_definition_id BIGINT NOT NULL COMMENT '表单定义ID',
|
||
form_key VARCHAR(255) NOT NULL COMMENT '表单标识(冗余存储,避免JOIN)',
|
||
form_version INT NOT NULL COMMENT '表单版本(冗余存储,用于历史追溯)',
|
||
category_id BIGINT NULL COMMENT '表单分类ID(冗余存储,便于统计和查询)',
|
||
|
||
-- 业务关联(松耦合)
|
||
business_key VARCHAR(255) NULL COMMENT '业务标识(如工作流实例ID、订单号等)',
|
||
business_type VARCHAR(50) NULL COMMENT '业务类型(WORKFLOW-工作流、ORDER-订单、STANDALONE-独立表单)',
|
||
|
||
-- 表单数据
|
||
data JSON NOT NULL COMMENT '表单填写数据(用户提交的实际数据)',
|
||
schema_snapshot JSON NOT NULL COMMENT '表单Schema快照(用于历史追溯,确保数据可还原)',
|
||
|
||
-- 提交信息
|
||
submitter VARCHAR(255) NULL COMMENT '提交人',
|
||
submit_time DATETIME(6) NULL COMMENT '提交时间',
|
||
|
||
-- 状态
|
||
status VARCHAR(50) NOT NULL DEFAULT 'SUBMITTED' COMMENT '状态(DRAFT-草稿、SUBMITTED-已提交、COMPLETED-已完成、REJECTED-已拒绝)',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
-- 索引
|
||
INDEX idx_form_definition_id (form_definition_id),
|
||
INDEX idx_form_key (form_key),
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_business_key (business_key),
|
||
INDEX idx_business_type (business_type),
|
||
INDEX idx_submitter (submitter),
|
||
INDEX idx_status (status),
|
||
INDEX idx_submit_time (submit_time),
|
||
INDEX idx_deleted (deleted)
|
||
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci
|
||
COMMENT = '表单数据表';
|
||
|
||
-- 工作流实例表
|
||
CREATE TABLE workflow_instance
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
process_instance_id VARCHAR(64) NOT NULL COMMENT '流程实例ID',
|
||
process_definition_id VARCHAR(64) NOT NULL COMMENT '流程定义ID',
|
||
workflow_definition_id BIGINT NOT NULL COMMENT '工作流定义ID',
|
||
business_key VARCHAR(64) NULL COMMENT '业务标识',
|
||
status ENUM('NOT_STARTED','CREATED','RUNNING','SUSPENDED','COMPLETED','COMPLETED_WITH_ERRORS','TERMINATED','FAILED') NOT NULL COMMENT '实例状态',
|
||
variables TEXT NULL COMMENT '流程变量(JSON,包含所有业务数据)',
|
||
graph_snapshot JSON NULL COMMENT '流程图数据快照(启动时保存,用于画布还原)',
|
||
start_time DATETIME(6) NULL COMMENT '开始时间',
|
||
end_time DATETIME(6) NULL COMMENT '结束时间'
|
||
|
||
-- CONSTRAINT FK_workflow_instance_definition FOREIGN KEY (process_definition_id) REFERENCES workflow_definition(id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流实例表';
|
||
|
||
-- 工作流节点实例表
|
||
CREATE TABLE workflow_node_instance
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
workflow_definition_id BIGINT NOT NULL COMMENT '工作流定义ID',
|
||
workflow_instance_id BIGINT NOT NULL COMMENT '工作流实例ID',
|
||
process_instance_id VARCHAR(64) NOT NULL COMMENT '流程实例ID',
|
||
execution_id VARCHAR(100) NOT NULL COMMENT '执行实例ID',
|
||
node_id VARCHAR(64) NOT NULL COMMENT '节点ID',
|
||
node_name VARCHAR(100) NOT NULL COMMENT '节点名称',
|
||
node_type VARCHAR(32) NOT NULL COMMENT '节点类型',
|
||
status VARCHAR(32) NOT NULL COMMENT '节点状态',
|
||
start_time DATETIME(6) NULL COMMENT '开始时间',
|
||
end_time DATETIME(6) NULL COMMENT '结束时间',
|
||
variables TEXT NULL COMMENT '节点变量(JSON)',
|
||
error_message TEXT NULL COMMENT '错误信息',
|
||
|
||
CONSTRAINT FK_workflow_node_instance_instance FOREIGN KEY (workflow_instance_id) REFERENCES workflow_instance (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流节点实例表';
|
||
|
||
-- 工作流日志表
|
||
CREATE TABLE workflow_log
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(255) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(255) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
workflow_instance_id BIGINT NULL COMMENT '工作流实例ID',
|
||
node_instance_id BIGINT NULL COMMENT '节点实例ID',
|
||
log_type VARCHAR(32) NOT NULL COMMENT '日志类型',
|
||
log_level VARCHAR(32) NOT NULL COMMENT '日志级别',
|
||
content TEXT NOT NULL COMMENT '日志内容',
|
||
|
||
CONSTRAINT FK_workflow_log_instance FOREIGN KEY (workflow_instance_id) REFERENCES workflow_instance (id),
|
||
CONSTRAINT FK_workflow_log_node_instance FOREIGN KEY (node_instance_id) REFERENCES workflow_node_instance (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='工作流日志表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 项目管理相关表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 应用分类表
|
||
CREATE TABLE deploy_application_category
|
||
(
|
||
-- 基础字段
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
||
|
||
-- 业务字段
|
||
code VARCHAR(50) NOT NULL COMMENT '分类编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
description VARCHAR(500) NULL COMMENT '分类描述',
|
||
icon VARCHAR(50) NULL COMMENT '图标',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||
|
||
UNIQUE INDEX uk_code (code)
|
||
) ENGINE = InnoDB
|
||
DEFAULT CHARSET = utf8mb4
|
||
COLLATE = utf8mb4_unicode_ci COMMENT ='应用分类表';
|
||
|
||
-- 应用表
|
||
CREATE TABLE deploy_application
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
-- 业务字段
|
||
app_code VARCHAR(50) NOT NULL COMMENT '应用编码',
|
||
app_name VARCHAR(100) NOT NULL COMMENT '应用名称',
|
||
app_desc VARCHAR(255) NULL COMMENT '应用描述',
|
||
language VARCHAR(50) NULL COMMENT '开发语言:JAVA、PYTHON、NODEJS',
|
||
repo_project_id BIGINT NULL COMMENT '代码仓库项目ID',
|
||
application_category_id BIGINT NULL COMMENT '所属应用分类ID',
|
||
external_system_id BIGINT NULL COMMENT '三方系统ID(关联外部系统)',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||
-- 基础字段
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除:0-未删除,1-已删除',
|
||
|
||
-- 索引
|
||
INDEX idx_application_category_id (application_category_id) COMMENT '应用分类ID索引',
|
||
UNIQUE INDEX uk_app_code (application_category_id, app_code) COMMENT '分类下应用编码唯一',
|
||
|
||
-- 外键约束
|
||
CONSTRAINT fk_application_category FOREIGN KEY (application_category_id) REFERENCES deploy_application_category (id)
|
||
) ENGINE = InnoDB
|
||
DEFAULT CHARSET = utf8mb4
|
||
COLLATE = utf8mb4_unicode_ci COMMENT ='应用表';
|
||
|
||
-- 环境表
|
||
CREATE TABLE deploy_environment
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
-- 业务字段
|
||
tenant_code VARCHAR(50) DEFAULT NULL COMMENT '租户编码',
|
||
env_code VARCHAR(50) NOT NULL COMMENT '环境编码',
|
||
env_name VARCHAR(100) NOT NULL COMMENT '环境名称',
|
||
env_desc VARCHAR(255) NULL COMMENT '环境描述',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用(0:禁用,1:启用)',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||
|
||
-- 基础字段
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
-- 索引
|
||
UNIQUE INDEX uk_env_code (env_code) COMMENT '环境编码唯一'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='环境表';
|
||
|
||
-- 团队表
|
||
CREATE TABLE deploy_team
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
team_code VARCHAR(50) NOT NULL COMMENT '团队编码',
|
||
team_name VARCHAR(100) NOT NULL COMMENT '团队名称',
|
||
description VARCHAR(500) NULL COMMENT '团队描述',
|
||
owner_id BIGINT NULL COMMENT '团队负责人用户ID',
|
||
owner_name VARCHAR(50) NULL COMMENT '团队负责人姓名(冗余)',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||
|
||
UNIQUE INDEX uk_team_code (team_code),
|
||
INDEX idx_owner (owner_id),
|
||
CONSTRAINT fk_team_owner FOREIGN KEY (owner_id) REFERENCES sys_user (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队表';
|
||
|
||
-- 团队成员表
|
||
CREATE TABLE deploy_team_member
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
team_id BIGINT NOT NULL COMMENT '团队ID',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
user_name VARCHAR(50) NULL COMMENT '用户名(冗余)',
|
||
role_in_team VARCHAR(50) NULL COMMENT '团队角色(如:开发、测试、运维、负责人)',
|
||
join_time DATETIME(6) NULL COMMENT '加入时间',
|
||
|
||
UNIQUE INDEX uk_team_user (team_id, user_id),
|
||
INDEX idx_user (user_id),
|
||
CONSTRAINT fk_team_member_team FOREIGN KEY (team_id) REFERENCES deploy_team (id),
|
||
CONSTRAINT fk_team_member_user FOREIGN KEY (user_id) REFERENCES sys_user (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队成员表';
|
||
|
||
-- 团队应用关联表
|
||
CREATE TABLE deploy_team_application
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
team_id BIGINT NOT NULL COMMENT '团队ID',
|
||
application_id BIGINT NOT NULL COMMENT '应用ID',
|
||
environment_id BIGINT NOT NULL COMMENT '环境ID',
|
||
branch VARCHAR(100) NULL COMMENT '分支名称',
|
||
deploy_system_id BIGINT NULL COMMENT '部署系统ID(关联sys_external_system,type=JENKINS)',
|
||
deploy_job VARCHAR(100) NULL COMMENT '部署任务ID(关联deploy_jenkins_job)',
|
||
workflow_definition_id BIGINT NULL COMMENT '工作流定义ID(关联workflow_definition)',
|
||
|
||
UNIQUE INDEX uk_team_app_env (team_id, application_id, environment_id),
|
||
INDEX idx_team (team_id),
|
||
INDEX idx_application (application_id),
|
||
INDEX idx_environment (environment_id),
|
||
INDEX idx_deploy_system (deploy_system_id),
|
||
INDEX idx_deploy_job (deploy_job),
|
||
INDEX idx_workflow_definition (workflow_definition_id),
|
||
CONSTRAINT fk_team_app_team FOREIGN KEY (team_id) REFERENCES deploy_team (id),
|
||
CONSTRAINT fk_team_app_application FOREIGN KEY (application_id) REFERENCES deploy_application (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队应用关联表';
|
||
|
||
-- 团队配置表
|
||
CREATE TABLE deploy_team_config
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
team_id BIGINT NOT NULL COMMENT '团队ID',
|
||
|
||
-- 环境权限配置
|
||
allowed_environment_ids JSON NULL COMMENT '团队可访问的环境ID列表,如:[1, 2, 3]',
|
||
|
||
-- 审批配置(与allowed_environment_ids位置对应)
|
||
environment_approval_required JSON NULL COMMENT '各环境是否需要审批(boolean数组),如:[false, false, true]',
|
||
approver_user_ids JSON NULL COMMENT '各环境的审批人列表(数组,无审批人用null),如:[null, null, [1, 4]]',
|
||
|
||
UNIQUE INDEX uk_team (team_id),
|
||
INDEX idx_deleted (deleted),
|
||
CONSTRAINT fk_team_config_team FOREIGN KEY (team_id) REFERENCES deploy_team (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='团队配置表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 通知渠道表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 通知渠道配置表
|
||
CREATE TABLE sys_notification_channel
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除(0:未删除,1:已删除)',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 0 COMMENT '乐观锁版本号',
|
||
|
||
name VARCHAR(100) NOT NULL COMMENT '渠道名称(如:研发部企业微信群)',
|
||
channel_type VARCHAR(50) NOT NULL COMMENT '渠道类型(WEWORK, FEISHU, DINGTALK, SMS, EMAIL, SLACK)',
|
||
config JSON NOT NULL COMMENT '渠道配置(JSON格式,不同渠道存储不同字段)',
|
||
status VARCHAR(20) NOT NULL DEFAULT 'ENABLED' COMMENT '状态(ENABLED-启用, DISABLED-禁用)',
|
||
description VARCHAR(500) NULL COMMENT '描述说明',
|
||
|
||
INDEX idx_channel_type (channel_type),
|
||
INDEX idx_status (status),
|
||
INDEX idx_deleted (deleted)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='通知渠道配置表';
|
||
|
||
-- --------------------------------------------------------------------------------------
|
||
-- 定时任务管理表
|
||
-- --------------------------------------------------------------------------------------
|
||
|
||
-- 定时任务分类表
|
||
CREATE TABLE schedule_job_category
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
code VARCHAR(50) NOT NULL COMMENT '分类编码',
|
||
name VARCHAR(100) NOT NULL COMMENT '分类名称',
|
||
description VARCHAR(500) NULL COMMENT '描述',
|
||
icon VARCHAR(50) NULL COMMENT '图标',
|
||
color VARCHAR(20) NULL COMMENT '颜色',
|
||
enabled BIT NOT NULL DEFAULT 1 COMMENT '是否启用',
|
||
sort INT NOT NULL DEFAULT 0 COMMENT '排序号',
|
||
|
||
UNIQUE INDEX uk_code (code, deleted),
|
||
INDEX idx_enabled (enabled)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务分类表';
|
||
|
||
-- 定时任务表
|
||
CREATE TABLE schedule_job
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
job_name VARCHAR(100) NOT NULL COMMENT '任务名称',
|
||
job_description VARCHAR(500) NULL COMMENT '任务描述',
|
||
category_id BIGINT NOT NULL COMMENT '任务分类ID',
|
||
|
||
-- 执行配置
|
||
bean_name VARCHAR(100) NOT NULL COMMENT 'Spring Bean名称',
|
||
method_name VARCHAR(100) NOT NULL COMMENT '方法名称',
|
||
form_definition_id BIGINT NULL COMMENT '参数表单ID',
|
||
method_params TEXT NULL COMMENT '方法参数JSON',
|
||
|
||
-- 调度配置
|
||
cron_expression VARCHAR(100) NOT NULL COMMENT 'Cron表达式',
|
||
status VARCHAR(20) NOT NULL DEFAULT 'ENABLED' COMMENT '任务状态:ENABLED-启用、DISABLED-禁用、PAUSED-暂停',
|
||
concurrent BIT NOT NULL DEFAULT 0 COMMENT '是否允许并发执行',
|
||
|
||
-- 统计信息
|
||
last_execute_time DATETIME(6) NULL COMMENT '上次执行时间',
|
||
next_execute_time DATETIME(6) NULL COMMENT '下次执行时间',
|
||
execute_count INT NOT NULL DEFAULT 0 COMMENT '执行次数',
|
||
success_count INT NOT NULL DEFAULT 0 COMMENT '成功次数',
|
||
fail_count INT NOT NULL DEFAULT 0 COMMENT '失败次数',
|
||
|
||
-- 高级配置
|
||
timeout_seconds INT NULL COMMENT '超时时间(秒)',
|
||
retry_count INT NOT NULL DEFAULT 0 COMMENT '失败重试次数',
|
||
alert_email VARCHAR(500) NULL COMMENT '告警邮箱(多个用逗号分隔)',
|
||
|
||
UNIQUE INDEX uk_job_name (job_name, deleted),
|
||
INDEX idx_category (category_id),
|
||
INDEX idx_status (status),
|
||
INDEX idx_next_execute_time (next_execute_time),
|
||
CONSTRAINT fk_job_category FOREIGN KEY (category_id) REFERENCES schedule_job_category (id),
|
||
CONSTRAINT fk_job_form FOREIGN KEY (form_definition_id) REFERENCES form_definition (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务表';
|
||
|
||
-- 定时任务执行日志表
|
||
CREATE TABLE schedule_job_log
|
||
(
|
||
id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID',
|
||
create_by VARCHAR(100) NULL COMMENT '创建人',
|
||
create_time DATETIME(6) NULL COMMENT '创建时间',
|
||
update_by VARCHAR(100) NULL COMMENT '更新人',
|
||
update_time DATETIME(6) NULL COMMENT '更新时间',
|
||
version INT NOT NULL DEFAULT 1 COMMENT '版本号',
|
||
deleted BIT NOT NULL DEFAULT 0 COMMENT '是否删除',
|
||
|
||
job_id BIGINT NOT NULL COMMENT '任务ID',
|
||
job_name VARCHAR(100) NOT NULL COMMENT '任务名称',
|
||
|
||
-- 执行信息
|
||
bean_name VARCHAR(100) NOT NULL COMMENT '执行器Bean名称',
|
||
method_name VARCHAR(100) NOT NULL COMMENT '执行方法名称',
|
||
method_params TEXT NULL COMMENT '方法参数',
|
||
|
||
-- 时间统计
|
||
execute_time DATETIME(6) NOT NULL COMMENT '开始执行时间',
|
||
finish_time DATETIME(6) NULL COMMENT '完成时间',
|
||
duration BIGINT NULL COMMENT '执行耗时(毫秒)',
|
||
|
||
-- 状态信息
|
||
status VARCHAR(20) NOT NULL COMMENT '执行状态:SUCCESS-成功、FAIL-失败、TIMEOUT-超时',
|
||
result_message TEXT NULL COMMENT '执行结果消息',
|
||
exception_info TEXT NULL COMMENT '异常堆栈信息',
|
||
|
||
-- 服务器信息
|
||
server_ip VARCHAR(50) NULL COMMENT '执行服务器IP',
|
||
server_host VARCHAR(100) NULL COMMENT '执行服务器主机名',
|
||
|
||
INDEX idx_job_id (job_id),
|
||
INDEX idx_execute_time (execute_time),
|
||
INDEX idx_status (status),
|
||
CONSTRAINT fk_log_job FOREIGN KEY (job_id) REFERENCES schedule_job (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='定时任务执行日志表';
|
||
|
||
-- =====================================================
|
||
-- 服务器管理
|
||
-- =====================================================
|
||
|
||
-- 服务器分类表
|
||
CREATE TABLE deploy_server_category
|
||
(
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
name VARCHAR(50) NOT NULL UNIQUE COMMENT '分类名称',
|
||
code VARCHAR(50) NOT NULL UNIQUE COMMENT '分类编码',
|
||
icon VARCHAR(50) NULL COMMENT '图标',
|
||
description VARCHAR(500) NULL COMMENT '分类描述',
|
||
sort INT DEFAULT 0 COMMENT '排序',
|
||
enabled BOOLEAN DEFAULT TRUE COMMENT '是否启用',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(50) NULL COMMENT '创建人',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_by VARCHAR(50) NULL COMMENT '更新人',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
version INT DEFAULT 1 COMMENT '版本号',
|
||
deleted BOOLEAN DEFAULT FALSE COMMENT '是否删除',
|
||
|
||
INDEX idx_code (code),
|
||
INDEX idx_enabled (enabled)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='服务器分类表';
|
||
|
||
-- 服务器表
|
||
CREATE TABLE deploy_server
|
||
(
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
|
||
server_name VARCHAR(100) NOT NULL COMMENT '服务器名称',
|
||
host_ip VARCHAR(50) NOT NULL UNIQUE COMMENT 'IP地址',
|
||
ssh_port INT DEFAULT 22 COMMENT 'SSH端口',
|
||
ssh_user VARCHAR(50) NULL COMMENT 'SSH用户名',
|
||
auth_type VARCHAR(20) DEFAULT 'PASSWORD' COMMENT '认证方式:PASSWORD/KEY',
|
||
ssh_password VARCHAR(500) NULL COMMENT 'SSH密码(加密存储)',
|
||
ssh_private_key TEXT NULL COMMENT 'SSH私钥(加密存储)',
|
||
ssh_passphrase VARCHAR(500) NULL COMMENT '私钥密码(加密存储)',
|
||
category_id BIGINT NULL COMMENT '服务器分类ID',
|
||
os_type VARCHAR(20) NULL COMMENT '操作系统类型:LINUX/WINDOWS/MACOS/UNIX/OTHER',
|
||
os_version VARCHAR(100) NULL COMMENT '操作系统版本:CentOS 7.9',
|
||
hostname VARCHAR(100) NULL COMMENT '主机名',
|
||
status VARCHAR(20) DEFAULT 'OFFLINE' COMMENT '连接状态:ONLINE/OFFLINE',
|
||
description VARCHAR(500) NULL COMMENT '服务器描述',
|
||
cpu_cores INT NULL COMMENT 'CPU核心数',
|
||
memory_size INT NULL COMMENT '内存大小(GB)',
|
||
disk_size INT NULL COMMENT '磁盘大小(GB)',
|
||
tags JSON NULL COMMENT '标签(JSON格式)',
|
||
last_connect_time DATETIME NULL COMMENT '最后连接时间',
|
||
|
||
-- 审计字段
|
||
create_by VARCHAR(50) NULL COMMENT '创建人',
|
||
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
update_by VARCHAR(50) NULL COMMENT '更新人',
|
||
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
version INT DEFAULT 1 COMMENT '版本号',
|
||
deleted BOOLEAN DEFAULT FALSE COMMENT '是否删除',
|
||
|
||
INDEX idx_host_ip (host_ip),
|
||
INDEX idx_category_id (category_id),
|
||
INDEX idx_status (status),
|
||
CONSTRAINT fk_server_category FOREIGN KEY (category_id) REFERENCES deploy_server_category (id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='服务器管理表';
|
||
|