Files
zyt/server/sql/1.9.20260420/cleanup_orphan_menus.sql
2026-05-11 17:49:38 +08:00

36 lines
1.8 KiB
SQL
Executable File

-- 清理菜单表中的孤儿记录(可选 · 跟 T1+T2 无关)
--
-- 背景:admin 启动时会按菜单表的 component 字段去 import.meta.glob 出来的 vue 文件里找匹配,
-- 找不到就 console.error("找不到组件 xxx")。前端 admin/src/views/stats/ 下没有 doctor-daily 目录,
-- 但菜单表里仍残留 component='stats/doctor-daily/index' 的记录 → 每次刷页面都会有这条警告。
--
-- 安全提示:
-- 1. **先跑下面的 SELECT**,确认要删的记录确实是孤儿(前端 views 下不存在)。
-- 2. 如果想保留菜单数据但不再触发 console.error,可以改 component 为空字符串而不是删除。
-- 3. 如果以后该功能要回归,可以从 git 历史里恢复或重新写 menu SQL。
--
-- 步骤 1:探测
-- =============================================================
-- SELECT id, pid, type, name, perms, paths, component, is_show, create_time
-- FROM zyt_system_menu
-- WHERE component LIKE '%doctor-daily%'
-- OR perms LIKE '%doctor.daily%'
-- OR paths LIKE '%doctor-daily%';
-- 步骤 2(可选 A):把这条菜单及其子按钮全部删掉
-- =============================================================
-- 先把它的子节点(按钮权限)一并清理
-- DELETE FROM zyt_system_menu
-- WHERE pid IN (
-- SELECT id FROM (
-- SELECT id FROM zyt_system_menu WHERE component = 'stats/doctor-daily/index'
-- ) t
-- );
-- DELETE FROM zyt_system_menu WHERE component = 'stats/doctor-daily/index';
-- 步骤 2(可选 B):仅置空 component,保留菜单与按钮权限不动(最稳妥)
-- =============================================================
-- UPDATE zyt_system_menu
-- SET component = ''
-- WHERE component = 'stats/doctor-daily/index';