Files
inquiry_robot/deploy/sql/slim_rbac_columns.sql
T

121 lines
4.8 KiB
SQL

-- inquiry_robot:账号/角色/菜单/权限 精简字段(对齐后台「账号管理」「角色管理」)
-- 只保留页面用到的列;破坏 Jeecg 官方实体兼容属预期(当前只要这套管理能力)。
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ---------- 账号 ----------
DROP TABLE IF EXISTS `sys_user_new`;
CREATE TABLE `sys_user_new` (
`id` varchar(32) NOT NULL,
`username` varchar(100) NOT NULL COMMENT '账号',
`realname` varchar(100) DEFAULT NULL COMMENT '姓名',
`password` varchar(255) DEFAULT NULL COMMENT '密码哈希',
`salt` varchar(45) DEFAULT NULL COMMENT '盐',
`wecom_id` varchar(64) DEFAULT NULL COMMENT '企微 userid',
`phone` varchar(45) DEFAULT NULL COMMENT '手机号',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用',
`last_login_time` datetime DEFAULT NULL COMMENT '最后登录',
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_wecom_id` (`wecom_id`),
KEY `idx_phone` (`phone`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号';
INSERT INTO `sys_user_new` (`id`,`username`,`realname`,`password`,`salt`,`wecom_id`,`phone`,`status`,`last_login_time`,`create_time`,`update_time`)
SELECT `id`,`username`,`realname`,`password`,`salt`,
NULLIF(`third_id`,''),
`phone`,
IFNULL(`status`,1),
NULL,
`create_time`,`update_time`
FROM `sys_user`;
DROP TABLE `sys_user`;
RENAME TABLE `sys_user_new` TO `sys_user`;
-- ---------- 角色 ----------
DROP TABLE IF EXISTS `sys_role_new`;
CREATE TABLE `sys_role_new` (
`id` varchar(32) NOT NULL,
`role_name` varchar(100) NOT NULL COMMENT '角色名称',
`role_code` varchar(100) NOT NULL COMMENT '角色编码',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用',
`description` varchar(255) DEFAULT NULL COMMENT '说明',
`create_time` datetime DEFAULT NULL,
`update_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_code` (`role_code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色';
INSERT INTO `sys_role_new` (`id`,`role_name`,`role_code`,`status`,`description`,`create_time`,`update_time`)
SELECT `id`,`role_name`,`role_code`,1,`description`,`create_time`,`update_time`
FROM `sys_role`;
DROP TABLE `sys_role`;
RENAME TABLE `sys_role_new` TO `sys_role`;
-- ---------- 账号-角色 ----------
DROP TABLE IF EXISTS `sys_user_role_new`;
CREATE TABLE `sys_user_role_new` (
`id` varchar(32) NOT NULL,
`user_id` varchar(32) NOT NULL,
`role_id` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_role` (`user_id`,`role_id`),
KEY `idx_role_id` (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='账号角色关联';
INSERT INTO `sys_user_role_new` (`id`,`user_id`,`role_id`)
SELECT `id`,`user_id`,`role_id` FROM `sys_user_role`;
DROP TABLE `sys_user_role`;
RENAME TABLE `sys_user_role_new` TO `sys_user_role`;
-- ---------- 菜单+权限 ----------
DROP TABLE IF EXISTS `sys_permission_new`;
CREATE TABLE `sys_permission_new` (
`id` varchar(32) NOT NULL,
`parent_id` varchar(32) DEFAULT NULL COMMENT '父菜单',
`name` varchar(100) NOT NULL COMMENT '菜单/权限名称',
`path` varchar(255) DEFAULT NULL COMMENT '路由或URL',
`menu_type` tinyint NOT NULL DEFAULT 0 COMMENT '0目录 1菜单 2按钮',
`perms` varchar(100) DEFAULT NULL COMMENT '权限码',
`icon` varchar(64) DEFAULT NULL COMMENT '图标',
`sort_no` int NOT NULL DEFAULT 0 COMMENT '排序',
`status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1启用 0禁用',
PRIMARY KEY (`id`),
KEY `idx_parent` (`parent_id`),
KEY `idx_perms` (`perms`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单与权限';
INSERT INTO `sys_permission_new` (`id`,`parent_id`,`name`,`path`,`menu_type`,`perms`,`icon`,`sort_no`,`status`)
SELECT `id`,`parent_id`,`name`,`url`,IFNULL(`menu_type`,0),`perms`,`icon`,
IFNULL(CAST(`sort_no` AS SIGNED),0),
CASE WHEN `status` IN ('1','0') THEN CAST(`status` AS SIGNED) ELSE 1 END
FROM `sys_permission`;
DROP TABLE `sys_permission`;
RENAME TABLE `sys_permission_new` TO `sys_permission`;
-- ---------- 角色-权限 ----------
DROP TABLE IF EXISTS `sys_role_permission_new`;
CREATE TABLE `sys_role_permission_new` (
`id` varchar(32) NOT NULL,
`role_id` varchar(32) NOT NULL,
`permission_id` varchar(32) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_perm` (`role_id`,`permission_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色权限关联';
INSERT INTO `sys_role_permission_new` (`id`,`role_id`,`permission_id`)
SELECT MIN(`id`),`role_id`,`permission_id` FROM `sys_role_permission`
GROUP BY `role_id`,`permission_id`;
DROP TABLE `sys_role_permission`;
RENAME TABLE `sys_role_permission_new` TO `sys_role_permission`;
SET FOREIGN_KEY_CHECKS = 1;