实测执行时发现硬编码 id 会撞主键: - t_sys_permission 自增起点 1000,但 t_sys_role_permission 已单独用到 1005 - 写死 1005/1006 插入关联表时触发 Duplicate entry '1005' 改动: - add_tools_text_diff.sql 改用 LAST_INSERT_ID() 取自增 id - 授权改为 INSERT...SELECT,覆盖全部有效角色,不再写死 role_id=1 - 清理语句用 JOIN 按 permission_code 定位,避免误删他人菜单 - init.sql 同步修正 id,并补上遗漏的 user:getUserInfo 权限点(id=8) - 两文件均已实测通过(含连续执行两次的幂等验证)
This commit is contained in:
+9
-4
@@ -154,6 +154,8 @@ VALUES
|
||||
-- 权限菜单
|
||||
-- component 必须带前导斜杠且与 src/view 下的实际文件名一致:
|
||||
-- 前端 formatMenuList() 会拼成 import('@/view' + component + '.vue')
|
||||
-- 说明:此处 id 硬编码仅适用于全新建库(此时两张表都为空)。
|
||||
-- 已有数据的库请用 sql/add_tools_text_diff.sql,它改用自增避免撞主键。
|
||||
INSERT INTO `t_sys_permission` (`id`, `parent_id`, `permission_code`, `permission_name`, `permission_desc`, `level`, `icon`, `url`, `component`, `sort`, `create_by`, `create_date`, `del_flag`)
|
||||
VALUES
|
||||
(1, 0, 'system', '系统管理', '系统管理菜单', 1, 'ios-settings', '', '', 1, 'admin', NOW(), 0),
|
||||
@@ -161,16 +163,18 @@ VALUES
|
||||
(3, 1, 'sys:role', '角色管理', '角色管理', 2, 'ios-people', '/sys/role', '/sys/sys-role', 2, 'admin', NOW(), 0),
|
||||
(4, 1, 'sys:dept', '部门管理', '部门管理', 2, 'ios-home', '/sys/dept', '/sys/sys-dept', 3, 'admin', NOW(), 0),
|
||||
(5, 1, 'sys:permission', '权限管理', '权限管理', 2, 'ios-key', '/sys/permission', '/sys/sys-permission', 4, 'admin', NOW(), 0),
|
||||
(6, 0, 'user:getUserInfo', '获取用户信息', '登录后获取当前用户信息的前端权限点', 1, '', '', '', 99, 'admin', NOW(), 0),
|
||||
(1003, 0, 'todo', '待办', '个人与公开待办', 1, 'md-checkmark-circle', '', '', 10, 'admin', NOW(), 0),
|
||||
(1004, 1003, 'todo:list', '待办清单', '个人待办清单', 2, 'md-list-box', '/todo/list', '/todo/todo-list', 1, 'admin', NOW(), 0),
|
||||
(1005, 0, 'tools', '工具列表', '与系统管理同级的工具集合', 1, 'ios-apps', '', '', 20, 'admin', NOW(), 0),
|
||||
(1006, 1005, 'tools:text-diff', '文本比对', '左右文本并排比对,支持字符级高亮、忽略空白与结果导出', 2, 'md-git-compare', '/tools/text-diff', '/tools/text-diff', 1, 'admin', NOW(), 0);
|
||||
(1007, 0, 'tools', '工具列表', '与系统管理同级的工具集合', 1, 'ios-apps', '', '', 20, 'admin', NOW(), 0),
|
||||
(1008, 1007, 'tools:text-diff', '文本比对', '左右文本并排比对,支持字符级高亮、忽略空白与结果导出', 2, 'md-git-compare', '/tools/text-diff', '/tools/text-diff', 1, 'admin', NOW(), 0);
|
||||
|
||||
-- 用户-角色关联:admin -> 超级管理员
|
||||
INSERT INTO `t_sys_user_role` (`id`, `user_id`, `role_id`, `create_by`, `create_time`)
|
||||
VALUES (1, 1, 1, 'admin', NOW());
|
||||
|
||||
-- 角色-权限关联:超级管理员 -> 所有权限
|
||||
-- 关联表自增起点同为 1000,这里也按实际 id 顺排,避免与 t_sys_permission 混淆
|
||||
INSERT INTO `t_sys_role_permission` (`id`, `role_id`, `permission_id`, `create_by`, `create_date`)
|
||||
VALUES
|
||||
(1, 1, 1, 'admin', NOW()),
|
||||
@@ -178,7 +182,8 @@ VALUES
|
||||
(3, 1, 3, 'admin', NOW()),
|
||||
(4, 1, 4, 'admin', NOW()),
|
||||
(5, 1, 5, 'admin', NOW()),
|
||||
(8, 1, 6, 'admin', NOW()),
|
||||
(1003, 1, 1003, 'admin', NOW()),
|
||||
(1004, 1, 1004, 'admin', NOW()),
|
||||
(1005, 1, 1005, 'admin', NOW()),
|
||||
(1006, 1, 1006, 'admin', NOW());
|
||||
(1005, 1, 1007, 'admin', NOW()),
|
||||
(1006, 1, 1008, 'admin', NOW());
|
||||
|
||||
Reference in New Issue
Block a user