refactor: 物理删除 => 逻辑删除(适配已有唯一索引)

1.涉及逻辑删除调整表:
main_table.sql:菜单表、部门表、角色表、用户表、用户社会化关联表、字典表、字典项表、消息表、公告表、存储表、文件表、客户端表、短信配置表
插件:应用表、租户表、租户套餐表
2.deleted 是否已删除(0:否;id:是)
This commit is contained in:
2025-11-09 19:08:28 +08:00
parent 6be14b59b1
commit fbc0269b3c
25 changed files with 373 additions and 265 deletions

View File

@@ -1,8 +1,6 @@
databaseChangeLog:
- include:
file: db/changelog/mysql/main_table.sql
- include:
file: db/changelog/mysql/main_column.sql
- include:
file: db/changelog/mysql/main_data.sql
- include:
@@ -17,8 +15,6 @@ databaseChangeLog:
# - include:
# file: db/changelog/postgresql/main_table.sql
# - include:
# file: db/changelog/postgresql/main_column.sql
# - include:
# file: db/changelog/postgresql/main_data.sql
# - include:
# file: db/changelog/postgresql/plugin/plugin_open.sql

View File

@@ -1,2 +0,0 @@
-- liquibase formatted sql

View File

@@ -3,7 +3,7 @@
-- changeset charles7c:1
-- comment 初始化表结构
CREATE TABLE IF NOT EXISTS `sys_menu` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`title` varchar(30) NOT NULL COMMENT '标题',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级菜单ID',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型1目录2菜单3按钮',
@@ -22,15 +22,17 @@ CREATE TABLE IF NOT EXISTS `sys_menu` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_title_parent_id`(`title`, `parent_id`),
UNIQUE INDEX `uk_title_parent_id`(`title`, `parent_id`, `deleted`),
INDEX `idx_parent_id`(`parent_id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';
CREATE TABLE IF NOT EXISTS `sys_dept` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '上级部门ID',
`ancestors` varchar(512) NOT NULL DEFAULT '' COMMENT '祖级列表',
@@ -42,36 +44,40 @@ CREATE TABLE IF NOT EXISTS `sys_dept` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name_parent_id`(`name`, `parent_id`),
UNIQUE INDEX `uk_name_parent_id`(`name`, `parent_id`, `deleted`),
INDEX `idx_parent_id`(`parent_id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';
CREATE TABLE IF NOT EXISTS `sys_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限1全部数据权限2本部门及以下数据权限3本部门数据权限4仅本人数据权限5自定义数据权限',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联',
`dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`data_scope` tinyint(1) NOT NULL DEFAULT 4 COMMENT '数据权限1全部数据权限2本部门及以下数据权限3本部门数据权限4仅本人数据权限5自定义数据权限',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联',
`dept_check_strictly` bit(1) DEFAULT b'1' COMMENT '部门选择是否父子节点关联',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name`(`name`),
UNIQUE INDEX `uk_code`(`code`),
UNIQUE INDEX `uk_name`(`name`, `deleted`),
UNIQUE INDEX `uk_code`(`code`, `deleted`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
CREATE TABLE IF NOT EXISTS `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`username` varchar(64) NOT NULL COMMENT '用户名',
`nickname` varchar(30) NOT NULL COMMENT '昵称',
`password` varchar(255) DEFAULT NULL COMMENT '密码',
@@ -88,40 +94,45 @@ CREATE TABLE IF NOT EXISTS `sys_user` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_username`(`username`),
UNIQUE INDEX `uk_email`(`email`),
UNIQUE INDEX `uk_phone`(`phone`),
UNIQUE INDEX `uk_username`(`username`, `deleted`),
UNIQUE INDEX `uk_email`(`email`, `deleted`),
UNIQUE INDEX `uk_phone`(`phone`, `deleted`),
INDEX `idx_dept_id`(`dept_id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
CREATE TABLE IF NOT EXISTS `sys_user_password_history` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`password` varchar(255) NOT NULL COMMENT '密码',
`create_time` datetime NOT NULL COMMENT '创建时间',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`password` varchar(255) NOT NULL COMMENT '密码',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`),
INDEX `idx_user_id`(`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户历史密码表';
CREATE TABLE IF NOT EXISTS `sys_user_social` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`source` varchar(255) NOT NULL COMMENT '来源',
`open_id` varchar(255) NOT NULL COMMENT '开放ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`meta_json` text DEFAULT NULL COMMENT '附加信息',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`source` varchar(255) NOT NULL COMMENT '来源',
`open_id` varchar(255) NOT NULL COMMENT '开放ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`meta_json` text DEFAULT NULL COMMENT '附加信息',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录时间',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`)
UNIQUE INDEX `uk_source_open_id`(`source`, `open_id`, `deleted`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户社会化关联表';
CREATE TABLE IF NOT EXISTS `sys_user_role` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`user_id` bigint(20) NOT NULL COMMENT '用户ID',
`role_id` bigint(20) NOT NULL COMMENT '角色ID',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_user_id_role_id`(`user_id`, `role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户和角色关联表';
@@ -139,36 +150,38 @@ CREATE TABLE IF NOT EXISTS `sys_role_dept` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色和部门关联表';
CREATE TABLE IF NOT EXISTS `sys_option` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`category` varchar(50) NOT NULL COMMENT '类别',
`name` varchar(50) NOT NULL COMMENT '名称',
`code` varchar(100) NOT NULL COMMENT '',
`value` longtext DEFAULT NULL COMMENT '',
`default_value` longtext DEFAULT NULL COMMENT '默认值',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`category` varchar(50) NOT NULL COMMENT '类别',
`name` varchar(50) NOT NULL COMMENT '名称',
`code` varchar(100) NOT NULL COMMENT '',
`value` longtext DEFAULT NULL COMMENT '',
`default_value` longtext DEFAULT NULL COMMENT '默认值',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_category_code`(`category`, `code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='参数表';
CREATE TABLE IF NOT EXISTS `sys_dict` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`description` varchar(200) DEFAULT NULL COMMENT '描述',
`is_system` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否为系统内置数据',
`create_user` bigint(20) NOT NULL COMMENT '创建人',
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_name`(`name`),
UNIQUE INDEX `uk_code`(`code`)
UNIQUE INDEX `uk_name`(`name`, `deleted`),
UNIQUE INDEX `uk_code`(`code`, `deleted`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典表';
CREATE TABLE IF NOT EXISTS `sys_dict_item` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`label` varchar(30) NOT NULL COMMENT '标签',
`value` varchar(30) NOT NULL COMMENT '',
`color` varchar(30) DEFAULT NULL COMMENT '标签颜色',
@@ -180,15 +193,17 @@ CREATE TABLE IF NOT EXISTS `sys_dict_item` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_value_dict_id`(`value`, `dict_id`),
UNIQUE INDEX `uk_value_dict_id`(`value`, `dict_id`, `deleted`),
INDEX `idx_dict_id`(`dict_id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典项表';
CREATE TABLE IF NOT EXISTS `sys_log` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`trace_id` varchar(255) DEFAULT NULL COMMENT '链路ID',
`description` varchar(255) NOT NULL COMMENT '日志描述',
`module` varchar(100) NOT NULL COMMENT '所属模块',
@@ -216,7 +231,7 @@ CREATE TABLE IF NOT EXISTS `sys_log` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='系统日志表';
CREATE TABLE IF NOT EXISTS `sys_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`title` varchar(50) NOT NULL COMMENT '标题',
`content` text DEFAULT NULL COMMENT '内容',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型1系统消息2安全消息',
@@ -224,7 +239,10 @@ CREATE TABLE IF NOT EXISTS `sys_message` (
`scope` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '通知范围1所有人2指定用户',
`users` json DEFAULT NULL COMMENT '通知用户',
`create_time` datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息表';
CREATE TABLE IF NOT EXISTS `sys_message_log` (
@@ -235,7 +253,7 @@ CREATE TABLE IF NOT EXISTS `sys_message_log` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='消息日志表';
CREATE TABLE IF NOT EXISTS `sys_notice` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`title` varchar(150) NOT NULL COMMENT '标题',
`content` mediumtext NOT NULL COMMENT '内容',
`type` varchar(30) NOT NULL COMMENT '分类',
@@ -250,9 +268,11 @@ CREATE TABLE IF NOT EXISTS `sys_notice` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告表';
CREATE TABLE IF NOT EXISTS `sys_notice_log` (
@@ -263,7 +283,7 @@ CREATE TABLE IF NOT EXISTS `sys_notice_log` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='公告日志表';
CREATE TABLE IF NOT EXISTS `sys_storage` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`type` tinyint(1) UNSIGNED NOT NULL DEFAULT 1 COMMENT '类型1本地存储2对象存储',
@@ -280,14 +300,16 @@ CREATE TABLE IF NOT EXISTS `sys_storage` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_code`(`code`),
UNIQUE INDEX `uk_code`(`code`, `deleted`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='存储表';
CREATE TABLE IF NOT EXISTS `sys_file` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(255) NOT NULL COMMENT '名称',
`original_name` varchar(255) NOT NULL COMMENT '原始名称',
`size` bigint(20) DEFAULT NULL COMMENT '大小(字节)',
@@ -306,15 +328,18 @@ CREATE TABLE IF NOT EXISTS `sys_file` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
INDEX `idx_type`(`type`),
INDEX `idx_sha256`(`sha256`),
INDEX `idx_storage_id`(`storage_id`),
INDEX `idx_create_user`(`create_user`)
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='文件表';
CREATE TABLE IF NOT EXISTS `sys_client` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`client_id` varchar(50) NOT NULL COMMENT '客户端ID',
`client_type` varchar(50) NOT NULL COMMENT '客户端类型',
`auth_type` json NOT NULL COMMENT '认证类型',
@@ -325,14 +350,16 @@ CREATE TABLE IF NOT EXISTS `sys_client` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_client_id`(`client_id`),
UNIQUE INDEX `uk_client_id`(`client_id`, `deleted`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户端表';
CREATE TABLE IF NOT EXISTS `sys_sms_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(100) NOT NULL COMMENT '名称',
`supplier` varchar(50) NOT NULL COMMENT '厂商',
`access_key` varchar(255) NOT NULL COMMENT 'Access Key',
@@ -350,9 +377,11 @@ CREATE TABLE IF NOT EXISTS `sys_sms_config` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='短信配置表';
CREATE TABLE IF NOT EXISTS `sys_sms_log` (

View File

@@ -15,10 +15,12 @@ CREATE TABLE IF NOT EXISTS `sys_app` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_access_key`(`access_key`),
UNIQUE INDEX `uk_access_key`(`access_key`, `deleted`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='应用表';
-- 初始化默认菜单

View File

@@ -4,7 +4,7 @@
-- comment 初始化租户插件数据表
-- 初始化表结构
CREATE TABLE IF NOT EXISTS `tenant` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`code` varchar(30) NOT NULL COMMENT '编码',
`domain` varchar(255) DEFAULT NULL COMMENT '域名',
@@ -18,16 +18,18 @@ CREATE TABLE IF NOT EXISTS `tenant` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
UNIQUE INDEX `uk_code`(`code`),
UNIQUE INDEX `uk_code`(`code`, `deleted`),
INDEX `idx_admin_user`(`admin_user`),
INDEX `idx_package_id`(`package_id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表';
CREATE TABLE IF NOT EXISTS `tenant_package` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'ID',
`id` bigint(20) AUTO_INCREMENT COMMENT 'ID',
`name` varchar(30) NOT NULL COMMENT '名称',
`sort` int NOT NULL DEFAULT 999 COMMENT '排序',
`menu_check_strictly` bit(1) DEFAULT b'1' COMMENT '菜单选择是否父子节点关联',
@@ -37,9 +39,11 @@ CREATE TABLE IF NOT EXISTS `tenant_package` (
`create_time` datetime NOT NULL COMMENT '创建时间',
`update_user` bigint(20) DEFAULT NULL COMMENT '修改人',
`update_time` datetime DEFAULT NULL COMMENT '修改时间',
`deleted` bigint(20) NOT NULL DEFAULT 0 COMMENT '是否已删除0id',
PRIMARY KEY (`id`),
INDEX `idx_create_user`(`create_user`),
INDEX `idx_update_user`(`update_user`)
INDEX `idx_update_user`(`update_user`),
INDEX `idx_deleted`(`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户套餐表';
CREATE TABLE IF NOT EXISTS `tenant_package_menu` (
@@ -98,22 +102,25 @@ ALTER TABLE `sys_app`
-- 调整唯一索引
ALTER TABLE `sys_dept`
DROP INDEX `uk_name_parent_id`,
ADD UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`, `tenant_id`);
ADD UNIQUE INDEX `uk_name_parent_id` (`name`, `parent_id`, `deleted`, `tenant_id`);
ALTER TABLE `sys_role`
DROP INDEX `uk_name`,
DROP INDEX `uk_code`,
ADD UNIQUE INDEX `uk_name` (`name`, `tenant_id`),
ADD UNIQUE INDEX `uk_code` (`code`, `tenant_id`);
ADD UNIQUE INDEX `uk_name` (`name`, `deleted`, `tenant_id`),
ADD UNIQUE INDEX `uk_code` (`code`, `deleted`, `tenant_id`);
ALTER TABLE `sys_user`
DROP INDEX `uk_username`,
DROP INDEX `uk_email`,
DROP INDEX `uk_phone`,
ADD UNIQUE INDEX `uk_username` (`username`, `tenant_id`),
ADD UNIQUE INDEX `uk_email` (`email`, `tenant_id`),
ADD UNIQUE INDEX `uk_phone` (`phone`, `tenant_id`);
ADD UNIQUE INDEX `uk_username` (`username`, `deleted`, `tenant_id`),
ADD UNIQUE INDEX `uk_email` (`email`, `deleted`, `tenant_id`),
ADD UNIQUE INDEX `uk_phone` (`phone`, `deleted`, `tenant_id`);
ALTER TABLE `sys_user_social`
DROP INDEX `uk_source_open_id`,
ADD UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`, `deleted`, `tenant_id`);
ALTER TABLE `sys_app`
DROP INDEX `uk_access_key`,
ADD UNIQUE INDEX `uk_access_key` (`access_key`, `tenant_id`);
ADD UNIQUE INDEX `uk_access_key` (`access_key`, `deleted`, `tenant_id`);
-- 初始化默认菜单
INSERT INTO `sys_menu`
@@ -135,9 +142,3 @@ VALUES
(3023, '新增', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:create', 3, 1, 1, NOW()),
(3024, '修改', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:update', 4, 1, 1, NOW()),
(3025, '删除', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:delete', 5, 1, 1, NOW());
-- changeset kai:20251022-01
-- comment 重置租户场景索引
ALTER TABLE `sys_user_social`
DROP INDEX `uk_source_open_id`,
ADD UNIQUE INDEX `uk_source_open_id` (`source`, `open_id`, `tenant_id`);

View File

@@ -1,2 +0,0 @@
-- liquibase formatted sql

View File

@@ -22,12 +22,14 @@ CREATE TABLE IF NOT EXISTS "sys_menu" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_menu_parent_id" ON "sys_menu" ("parent_id");
CREATE INDEX "idx_menu_create_user" ON "sys_menu" ("create_user");
CREATE INDEX "idx_menu_update_user" ON "sys_menu" ("update_user");
CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id");
CREATE UNIQUE INDEX "uk_menu_title_parent_id" ON "sys_menu" ("title", "parent_id", "deleted");
CREATE INDEX "idx_menu_parent_id" ON "sys_menu" ("parent_id");
CREATE INDEX "idx_menu_create_user" ON "sys_menu" ("create_user");
CREATE INDEX "idx_menu_update_user" ON "sys_menu" ("update_user");
CREATE INDEX "idx_menu_deleted" ON "sys_menu" ("deleted");
COMMENT ON COLUMN "sys_menu"."id" IS 'ID';
COMMENT ON COLUMN "sys_menu"."title" IS '标题';
COMMENT ON COLUMN "sys_menu"."parent_id" IS '上级菜单ID';
@@ -47,6 +49,7 @@ COMMENT ON COLUMN "sys_menu"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_menu"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_menu"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_menu"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_menu"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_menu" IS '菜单表';
CREATE TABLE IF NOT EXISTS "sys_dept" (
@@ -62,12 +65,14 @@ CREATE TABLE IF NOT EXISTS "sys_dept" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_dept_parent_id" ON "sys_dept" ("parent_id");
CREATE INDEX "idx_dept_create_user" ON "sys_dept" ("create_user");
CREATE INDEX "idx_dept_update_user" ON "sys_dept" ("update_user");
CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id");
CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "deleted");
CREATE INDEX "idx_dept_parent_id" ON "sys_dept" ("parent_id");
CREATE INDEX "idx_dept_create_user" ON "sys_dept" ("create_user");
CREATE INDEX "idx_dept_update_user" ON "sys_dept" ("update_user");
CREATE INDEX "idx_dept_deleted" ON "sys_dept" ("deleted");
COMMENT ON COLUMN "sys_dept"."id" IS 'ID';
COMMENT ON COLUMN "sys_dept"."name" IS '名称';
COMMENT ON COLUMN "sys_dept"."parent_id" IS '上级部门ID';
@@ -80,6 +85,7 @@ COMMENT ON COLUMN "sys_dept"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_dept"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_dept"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_dept"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_dept"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_dept" IS '部门表';
CREATE TABLE IF NOT EXISTS "sys_role" (
@@ -96,12 +102,14 @@ CREATE TABLE IF NOT EXISTS "sys_role" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name");
CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code");
CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "deleted");
CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "deleted");
CREATE INDEX "idx_role_create_user" ON "sys_role" ("create_user");
CREATE INDEX "idx_role_update_user" ON "sys_role" ("update_user");
CREATE INDEX "idx_role_deleted" ON "sys_role" ("deleted");
COMMENT ON COLUMN "sys_role"."id" IS 'ID';
COMMENT ON COLUMN "sys_role"."name" IS '名称';
COMMENT ON COLUMN "sys_role"."code" IS '编码';
@@ -115,6 +123,7 @@ COMMENT ON COLUMN "sys_role"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_role"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_role"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_role"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_role"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_role" IS '角色表';
CREATE TABLE IF NOT EXISTS "sys_user" (
@@ -135,14 +144,16 @@ CREATE TABLE IF NOT EXISTS "sys_user" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username");
CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email");
CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone");
CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "deleted");
CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "deleted");
CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "deleted");
CREATE INDEX "idx_user_dept_id" ON "sys_user" ("dept_id");
CREATE INDEX "idx_user_create_user" ON "sys_user" ("create_user");
CREATE INDEX "idx_user_update_user" ON "sys_user" ("update_user");
CREATE INDEX "idx_user_deleted" ON "sys_user" ("deleted");
COMMENT ON COLUMN "sys_user"."id" IS 'ID';
COMMENT ON COLUMN "sys_user"."username" IS '用户名';
COMMENT ON COLUMN "sys_user"."nickname" IS '昵称';
@@ -160,6 +171,7 @@ COMMENT ON COLUMN "sys_user"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_user"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_user"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_user"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_user"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_user" IS '用户表';
CREATE TABLE IF NOT EXISTS "sys_user_password_history" (
@@ -184,9 +196,11 @@ CREATE TABLE IF NOT EXISTS "sys_user_social" (
"meta_json" text DEFAULT NULL,
"last_login_time" timestamp DEFAULT NULL,
"create_time" timestamp NOT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id");
CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id", "deleted");
COMMENT ON COLUMN "sys_user_social"."id" IS 'ID';
COMMENT ON COLUMN "sys_user_social"."source" IS '来源';
COMMENT ON COLUMN "sys_user_social"."open_id" IS '开放ID';
@@ -194,6 +208,8 @@ COMMENT ON COLUMN "sys_user_social"."user_id" IS '用户ID';
COMMENT ON COLUMN "sys_user_social"."meta_json" IS '附加信息';
COMMENT ON COLUMN "sys_user_social"."last_login_time" IS '最后登录时间';
COMMENT ON COLUMN "sys_user_social"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_user_social"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_user_social"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_user_social" IS '用户社会化关联表';
CREATE TABLE IF NOT EXISTS "sys_user_role" (
@@ -260,10 +276,11 @@ CREATE TABLE IF NOT EXISTS "sys_dict" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_dict_name" ON "sys_dict" ("name");
CREATE UNIQUE INDEX "uk_dict_code" ON "sys_dict" ("code");
CREATE UNIQUE INDEX "uk_dict_name" ON "sys_dict" ("name", "deleted");
CREATE UNIQUE INDEX "uk_dict_code" ON "sys_dict" ("code", "deleted");
COMMENT ON COLUMN "sys_dict"."id" IS 'ID';
COMMENT ON COLUMN "sys_dict"."name" IS '名称';
COMMENT ON COLUMN "sys_dict"."code" IS '编码';
@@ -273,6 +290,7 @@ COMMENT ON COLUMN "sys_dict"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_dict"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_dict"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_dict"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_dict"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_dict" IS '字典表';
CREATE TABLE IF NOT EXISTS "sys_dict_item" (
@@ -288,12 +306,13 @@ CREATE TABLE IF NOT EXISTS "sys_dict_item" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_dict_item_value_dict_id" ON "sys_dict_item" ("value", "dict_id");
CREATE INDEX "idx_dict_item_dict_id" ON "sys_dict_item" ("dict_id");
CREATE INDEX "idx_dict_item_create_user" ON "sys_dict_item" ("create_user");
CREATE INDEX "idx_dict_item_update_user" ON "sys_dict_item" ("update_user");
CREATE UNIQUE INDEX "uk_dict_item_value_dict_id" ON "sys_dict_item" ("value", "dict_id", "deleted");
CREATE INDEX "idx_dict_item_dict_id" ON "sys_dict_item" ("dict_id");
CREATE INDEX "idx_dict_item_create_user" ON "sys_dict_item" ("create_user");
CREATE INDEX "idx_dict_item_update_user" ON "sys_dict_item" ("update_user");
COMMENT ON COLUMN "sys_dict_item"."id" IS 'ID';
COMMENT ON COLUMN "sys_dict_item"."label" IS '标签';
COMMENT ON COLUMN "sys_dict_item"."value" IS '';
@@ -306,6 +325,7 @@ COMMENT ON COLUMN "sys_dict_item"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_dict_item"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_dict_item"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_dict_item"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_dict_item"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_dict_item" IS '字典项表';
CREATE TABLE IF NOT EXISTS "sys_log" (
@@ -366,8 +386,11 @@ CREATE TABLE IF NOT EXISTS "sys_message" (
"scope" int2 NOT NULL DEFAULT 1,
"users" json DEFAULT NULL,
"create_time" timestamp NOT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_message_deleted" ON "sys_message" ("deleted");
COMMENT ON COLUMN "sys_message"."id" IS 'ID';
COMMENT ON COLUMN "sys_message"."title" IS '标题';
COMMENT ON COLUMN "sys_message"."content" IS '内容';
@@ -376,6 +399,8 @@ COMMENT ON COLUMN "sys_message"."path" IS '跳转路径';
COMMENT ON COLUMN "sys_message"."scope" IS '通知范围1所有人2指定用户';
COMMENT ON COLUMN "sys_message"."users" IS '通知用户';
COMMENT ON COLUMN "sys_message"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_message"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_message"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_message" IS '消息表';
CREATE TABLE IF NOT EXISTS "sys_message_log" (
@@ -405,10 +430,12 @@ CREATE TABLE IF NOT EXISTS "sys_notice" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_notice_create_user" ON "sys_notice" ("create_user");
CREATE INDEX "idx_notice_update_user" ON "sys_notice" ("update_user");
CREATE INDEX "idx_notice_deleted" ON "sys_notice" ("deleted");
COMMENT ON COLUMN "sys_notice"."id" IS 'ID';
COMMENT ON COLUMN "sys_notice"."title" IS '标题';
COMMENT ON COLUMN "sys_notice"."content" IS '内容';
@@ -424,6 +451,7 @@ COMMENT ON COLUMN "sys_notice"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_notice"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_notice"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_notice"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_notice"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_notice" IS '公告表';
CREATE TABLE IF NOT EXISTS "sys_notice_log" (
@@ -455,11 +483,13 @@ CREATE TABLE IF NOT EXISTS "sys_storage" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_storage_code" ON "sys_storage" ("code");
CREATE UNIQUE INDEX "uk_storage_code" ON "sys_storage" ("code", "deleted");
CREATE INDEX "idx_storage_create_user" ON "sys_storage" ("create_user");
CREATE INDEX "idx_storage_update_user" ON "sys_storage" ("update_user");
CREATE INDEX "idx_storage_deleted" ON "sys_storage" ("deleted");
COMMENT ON COLUMN "sys_storage"."id" IS 'ID';
COMMENT ON COLUMN "sys_storage"."name" IS '名称';
COMMENT ON COLUMN "sys_storage"."code" IS '编码';
@@ -477,6 +507,7 @@ COMMENT ON COLUMN "sys_storage"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_storage"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_storage"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_storage"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_storage"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_storage" IS '存储表';
CREATE TABLE IF NOT EXISTS "sys_file" (
@@ -499,12 +530,15 @@ CREATE TABLE IF NOT EXISTS "sys_file" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_file_type" ON "sys_file" ("type");
CREATE INDEX "idx_file_sha256" ON "sys_file" ("sha256");
CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id");
CREATE INDEX "idx_file_type" ON "sys_file" ("type");
CREATE INDEX "idx_file_sha256" ON "sys_file" ("sha256");
CREATE INDEX "idx_file_storage_id" ON "sys_file" ("storage_id");
CREATE INDEX "idx_file_create_user" ON "sys_file" ("create_user");
CREATE INDEX "idx_file_update_user" ON "sys_file" ("update_user");
CREATE INDEX "idx_file_deleted" ON "sys_file" ("deleted");
COMMENT ON COLUMN "sys_file"."id" IS 'ID';
COMMENT ON COLUMN "sys_file"."name" IS '名称';
COMMENT ON COLUMN "sys_file"."original_name" IS '原始名称';
@@ -524,6 +558,7 @@ COMMENT ON COLUMN "sys_file"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_file"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_file"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_file"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_file"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_file" IS '文件表';
CREATE TABLE IF NOT EXISTS "sys_client" (
@@ -538,11 +573,13 @@ CREATE TABLE IF NOT EXISTS "sys_client" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_client_client_id" ON "sys_client" ("client_id");
CREATE INDEX "idx_client_create_user" ON "sys_client" ("create_user");
CREATE INDEX "idx_client_update_user" ON "sys_client" ("update_user");
CREATE INDEX "idx_client_create_user" ON "sys_client" ("create_user");
CREATE INDEX "idx_client_update_user" ON "sys_client" ("update_user");
CREATE INDEX "idx_client_deleted" ON "sys_client" ("deleted");
COMMENT ON COLUMN "sys_client"."id" IS 'ID';
COMMENT ON COLUMN "sys_client"."client_id" IS '客户端ID';
COMMENT ON COLUMN "sys_client"."client_type" IS '客户端类型';
@@ -554,6 +591,7 @@ COMMENT ON COLUMN "sys_client"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_client"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_client"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_client"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_client"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_client" IS '客户端表';
CREATE TABLE IF NOT EXISTS "sys_sms_config" (
@@ -575,10 +613,12 @@ CREATE TABLE IF NOT EXISTS "sys_sms_config" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_sms_config_create_user" ON "sys_sms_config" ("create_user");
CREATE INDEX "idx_sms_config_update_user" ON "sys_sms_config" ("update_user");
CREATE INDEX "idx_sms_config_deleted" ON "sys_sms_config" ("deleted");
COMMENT ON COLUMN "sys_sms_config"."id" IS 'ID';
COMMENT ON COLUMN "sys_sms_config"."name" IS '名称';
COMMENT ON COLUMN "sys_sms_config"."supplier" IS '厂商';
@@ -597,7 +637,8 @@ COMMENT ON COLUMN "sys_sms_config"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_sms_config"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_sms_config"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_sms_config"."update_time" IS '修改时间';
COMMENT ON TABLE "sys_sms_config" IS '短信配置表';
COMMENT ON COLUMN "sys_sms_config"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_sms_config" IS '短信配置表';
CREATE TABLE IF NOT EXISTS "sys_sms_log" (
"id" int8 NOT NULL,
@@ -610,7 +651,7 @@ CREATE TABLE IF NOT EXISTS "sys_sms_log" (
"create_time" timestamp NOT NULL,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_sms_log_config_id" ON "sys_sms_log" ("config_id");
CREATE INDEX "idx_sms_log_config_id" ON "sys_sms_log" ("config_id");
CREATE INDEX "idx_sms_log_create_user" ON "sys_sms_log" ("create_user");
COMMENT ON COLUMN "sys_sms_log"."id" IS 'ID';
COMMENT ON COLUMN "sys_sms_log"."config_id" IS '配置ID';
@@ -620,4 +661,4 @@ COMMENT ON COLUMN "sys_sms_log"."status" IS '发送状态1成功2
COMMENT ON COLUMN "sys_sms_log"."res_msg" IS '返回数据';
COMMENT ON COLUMN "sys_sms_log"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_sms_log"."create_time" IS '创建时间';
COMMENT ON TABLE "sys_sms_log" IS '短信日志表';
COMMENT ON TABLE "sys_sms_log" IS '短信日志表';

View File

@@ -15,23 +15,26 @@ CREATE TABLE IF NOT EXISTS "sys_app" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key");
CREATE INDEX "idx_app_create_user" ON "sys_app" ("create_user");
CREATE INDEX "idx_app_update_user" ON "sys_app" ("update_user");
COMMENT ON COLUMN "sys_app"."id" IS 'ID';
COMMENT ON COLUMN "sys_app"."name" IS '名称';
COMMENT ON COLUMN "sys_app"."access_key" IS 'Access Key访问密钥';
COMMENT ON COLUMN "sys_app"."secret_key" IS 'Secret Key私有密钥)';
COMMENT ON COLUMN "sys_app"."expire_time" IS '失效时间';
COMMENT ON COLUMN "sys_app"."description" IS '描述';
COMMENT ON COLUMN "sys_app"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "sys_app"."create_user" IS '创建人';
COMMENT ON COLUMN "sys_app"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_app"."update_user" IS '修改人';
COMMENT ON COLUMN "sys_app"."update_time" IS '修改时间';
COMMENT ON TABLE "sys_app" IS '应用表';
CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "deleted");
CREATE INDEX "idx_app_create_user" ON "sys_app" ("create_user");
CREATE INDEX "idx_app_update_user" ON "sys_app" ("update_user");
CREATE INDEX "idx_app_deleted" ON "sys_app" ("deleted");
COMMENT ON COLUMN "sys_app"."id" IS 'ID';
COMMENT ON COLUMN "sys_app"."name" IS '名称';
COMMENT ON COLUMN "sys_app"."access_key" IS 'Access Key访问密钥)';
COMMENT ON COLUMN "sys_app"."secret_key" IS 'Secret Key私有密钥';
COMMENT ON COLUMN "sys_app"."expire_time" IS '失效时间';
COMMENT ON COLUMN "sys_app"."description" IS '描述';
COMMENT ON COLUMN "sys_app"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "sys_app"."create_user" IS '创建';
COMMENT ON COLUMN "sys_app"."create_time" IS '创建时间';
COMMENT ON COLUMN "sys_app"."update_user" IS '修改';
COMMENT ON COLUMN "sys_app"."update_time" IS '修改时间';
COMMENT ON COLUMN "sys_app"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "sys_app" IS '应用表';
-- 初始化默认菜单
INSERT INTO "sys_menu"

View File

@@ -18,27 +18,30 @@ CREATE TABLE IF NOT EXISTS "tenant" (
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code");
CREATE INDEX "idx_tenant_admin_user" ON "tenant" ("admin_user");
CREATE INDEX "idx_tenant_package_id" ON "tenant" ("package_id");
CREATE UNIQUE INDEX "uk_tenant_code" ON "tenant" ("code", "deleted");
CREATE INDEX "idx_tenant_admin_user" ON "tenant" ("admin_user");
CREATE INDEX "idx_tenant_package_id" ON "tenant" ("package_id");
CREATE INDEX "idx_tenant_create_user" ON "tenant" ("create_user");
CREATE INDEX "idx_tenant_update_user" ON "tenant" ("update_user");
COMMENT ON COLUMN "tenant"."id" IS 'ID';
COMMENT ON COLUMN "tenant"."name" IS '名称';
COMMENT ON COLUMN "tenant"."code" IS '编码';
COMMENT ON COLUMN "tenant"."domain" IS '域名';
COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间';
COMMENT ON COLUMN "tenant"."description" IS '描述';
COMMENT ON COLUMN "tenant"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID';
COMMENT ON COLUMN "tenant"."admin_user" IS '管理员用户';
CREATE INDEX "idx_tenant_deleted" ON "tenant" ("deleted");
COMMENT ON COLUMN "tenant"."id" IS 'ID';
COMMENT ON COLUMN "tenant"."name" IS '名称';
COMMENT ON COLUMN "tenant"."code" IS '编码';
COMMENT ON COLUMN "tenant"."domain" IS '域名';
COMMENT ON COLUMN "tenant"."expire_time" IS '过期时间';
COMMENT ON COLUMN "tenant"."description" IS '描述';
COMMENT ON COLUMN "tenant"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "tenant"."package_id" IS '套餐ID';
COMMENT ON COLUMN "tenant"."admin_user" IS '管理员用户';
COMMENT ON COLUMN "tenant"."admin_username" IS '管理员用户名';
COMMENT ON COLUMN "tenant"."create_user" IS '创建人';
COMMENT ON COLUMN "tenant"."create_time" IS '创建时间';
COMMENT ON COLUMN "tenant"."update_user" IS '修改人';
COMMENT ON COLUMN "tenant"."update_time" IS '修改时间';
COMMENT ON COLUMN "tenant"."create_user" IS '创建人';
COMMENT ON COLUMN "tenant"."create_time" IS '创建时间';
COMMENT ON COLUMN "tenant"."update_user" IS '修改人';
COMMENT ON COLUMN "tenant"."update_time" IS '修改时间';
COMMENT ON COLUMN "tenant"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "tenant" IS '租户表';
CREATE TABLE IF NOT EXISTS "tenant_package" (
@@ -51,22 +54,25 @@ CREATE TABLE IF NOT EXISTS "tenant_package" (
"create_user" int8 NOT NULL,
"create_time" timestamp NOT NULL,
"update_user" int8 DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"update_time" timestamp DEFAULT NULL,
"deleted" int8 NOT NULL DEFAULT 0,
PRIMARY KEY ("id")
);
CREATE INDEX "idx_tenant_package_create_user" ON "tenant_package" ("create_user");
CREATE INDEX "idx_tenant_package_update_user" ON "tenant_package" ("update_user");
COMMENT ON COLUMN "tenant_package"."id" IS 'ID';
COMMENT ON COLUMN "tenant_package"."name" IS '名称';
COMMENT ON COLUMN "tenant_package"."sort" IS '排序';
CREATE INDEX "idx_tenant_deleted" ON "tenant_package" ("deleted");
COMMENT ON COLUMN "tenant_package"."id" IS 'ID';
COMMENT ON COLUMN "tenant_package"."name" IS '名称';
COMMENT ON COLUMN "tenant_package"."sort" IS '排序';
COMMENT ON COLUMN "tenant_package"."menu_check_strictly" IS '菜单选择是否父子节点关联';
COMMENT ON COLUMN "tenant_package"."description" IS '描述';
COMMENT ON COLUMN "tenant_package"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "tenant_package"."create_user" IS '创建人';
COMMENT ON COLUMN "tenant_package"."create_time" IS '创建时间';
COMMENT ON COLUMN "tenant_package"."update_user" IS '修改人';
COMMENT ON COLUMN "tenant_package"."update_time" IS '修改时间';
COMMENT ON TABLE "tenant_package" IS '租户套餐表';
COMMENT ON COLUMN "tenant_package"."description" IS '描述';
COMMENT ON COLUMN "tenant_package"."status" IS '状态1启用2禁用';
COMMENT ON COLUMN "tenant_package"."create_user" IS '创建人';
COMMENT ON COLUMN "tenant_package"."create_time" IS '创建时间';
COMMENT ON COLUMN "tenant_package"."update_user" IS '修改人';
COMMENT ON COLUMN "tenant_package"."update_time" IS '修改时间';
COMMENT ON COLUMN "tenant_package"."deleted" IS '是否已删除0id';
COMMENT ON TABLE "tenant_package" IS '租户套餐表';
CREATE TABLE IF NOT EXISTS "tenant_package_menu" (
"package_id" int8 NOT NULL,
@@ -74,8 +80,8 @@ CREATE TABLE IF NOT EXISTS "tenant_package_menu" (
PRIMARY KEY ("package_id", "menu_id")
);
COMMENT ON COLUMN "tenant_package_menu"."package_id" IS '套餐ID';
COMMENT ON COLUMN "tenant_package_menu"."menu_id" IS '菜单ID';
COMMENT ON TABLE "tenant_package_menu" IS '租户套餐和菜单关联表';
COMMENT ON COLUMN "tenant_package_menu"."menu_id" IS '菜单ID';
COMMENT ON TABLE "tenant_package_menu" IS '租户套餐和菜单关联表';
-- 为已有表增加租户字段
ALTER TABLE "sys_dept" ADD COLUMN "tenant_id" int8 NOT NULL DEFAULT 0;
@@ -140,19 +146,22 @@ CREATE INDEX "idx_app_tenant_id" ON "sys_app" ("tenant_id");
-- 调整唯一索引
DROP INDEX IF EXISTS "uk_dept_name_parent_id";
CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "tenant_id");
CREATE UNIQUE INDEX "uk_dept_name_parent_id" ON "sys_dept" ("name", "parent_id", "deleted", "tenant_id");
DROP INDEX IF EXISTS "uk_role_name", "uk_role_code";
CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "tenant_id");
CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "tenant_id");
CREATE UNIQUE INDEX "uk_role_name" ON "sys_role" ("name", "deleted", "tenant_id");
CREATE UNIQUE INDEX "uk_role_code" ON "sys_role" ("code", "deleted", "tenant_id");
DROP INDEX IF EXISTS "uk_user_username", "uk_user_email", "uk_user_phone";
CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "tenant_id");
CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "tenant_id");
CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "tenant_id");
CREATE UNIQUE INDEX "uk_user_username" ON "sys_user" ("username", "deleted", "tenant_id");
CREATE UNIQUE INDEX "uk_user_email" ON "sys_user" ("email", "deleted", "tenant_id");
CREATE UNIQUE INDEX "uk_user_phone" ON "sys_user" ("phone", "deleted", "tenant_id");
DROP INDEX IF EXISTS "uk_user_source_open_id";
CREATE UNIQUE INDEX "uk_user_source_open_id" ON "sys_user_social" ("source", "open_id", "deleted", "tenant_id");
DROP INDEX IF EXISTS "uk_app_access_key";
CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "tenant_id");
CREATE UNIQUE INDEX "uk_app_access_key" ON "sys_app" ("access_key", "deleted", "tenant_id");
-- 初始化默认菜单
INSERT INTO "sys_menu" ("id", "title", "parent_id", "type", "path", "name", "component", "redirect", "icon", "is_external", "is_cache", "is_hidden", "permission", "sort", "status", "create_user", "create_time")
@@ -174,9 +183,3 @@ VALUES
(3024, '修改', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:update', 4, 1, 1, NOW()),
(3025, '删除', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'tenant:package:delete', 5, 1, 1, NOW());
-- changeset kai:20251022-01
-- comment 重置租户场景索引
DROP INDEX IF EXISTS "uk_user_source_open_id";
CREATE UNIQUE INDEX "uk_user_source_open_id"
ON "sys_user_social" ("source", "open_id", "tenant_id");