games-development-ai/deploy/sql/2026-06-11-menu-cleanup.sql

38 lines
2.2 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- =============================================================================
-- 造梦AI · yudao 死菜单清理2026-06-11 审计版)
-- 适用库ruoyi-vue-prostagingmini-desktop docker game-staging-mysqlMySQL 8.4.8
-- 性质软删deleted=1全量可回滚备份表 + 固化删除集表)
-- 判据16 棵死顶级子树views 已被 fork 删除,点开全空白);详见
-- docs/agent-specs/2026-06-11-admin-cloud清理-codex执行单.md §1 层A
-- 执行方式:分 4 段执行,每段闸门校验通过才进下一段(勿一次性灌整个文件)
-- =============================================================================
-- ---------- 段1备份若备份表已存在=有前次执行残留,必须停下人核,禁止覆盖) ----------
CREATE TABLE system_menu_bak_20260611 AS SELECT * FROM system_menu;
CREATE TABLE system_role_menu_bak_20260611 AS SELECT * FROM system_role_menu;
-- ---------- 段2固化删除集递归收集 16 棵死子树全部后代) ----------
DROP TABLE IF EXISTS cleanup_menu_del_20260611;
CREATE TABLE cleanup_menu_del_20260611 (id BIGINT PRIMARY KEY);
INSERT INTO cleanup_menu_del_20260611
WITH RECURSIVE del AS (
SELECT id FROM system_menu
WHERE id IN (1117,1185,1254,1281,2084,2159,2160,2262,2362,2397,2563,2758,4000,5100,6400,6500)
AND deleted = 0
UNION ALL
SELECT m.id FROM system_menu m JOIN del d ON m.parent_id = d.id WHERE m.deleted = 0
)
SELECT id FROM del;
-- ---------- 段3软删带审计 updater遵守审计列非空红线 ----------
UPDATE system_menu m JOIN cleanup_menu_del_20260611 d ON m.id = d.id
SET m.deleted = 1, m.updater = 'cleanup-20260611', m.update_time = NOW();
UPDATE system_role_menu rm JOIN cleanup_menu_del_20260611 d ON rm.menu_id = d.id
SET rm.deleted = 1, rm.updater = 'cleanup-20260611', rm.update_time = NOW()
WHERE rm.deleted = 0;
-- ---------- 段4仅回滚时用平时勿执行全量恢复 ----------
-- UPDATE system_menu m JOIN system_menu_bak_20260611 b ON m.id = b.id SET m.deleted = b.deleted;
-- UPDATE system_role_menu rm JOIN system_role_menu_bak_20260611 b ON rm.id = b.id SET rm.deleted = b.deleted;