yunzer_go/server/database/rollback_role_permissions.sql
2025-11-06 15:56:29 +08:00

42 lines
1.4 KiB
SQL

-- =============================================
-- 角色权限回滚脚本
-- 如果迁移出现问题,可以从备份表恢复数据
-- =============================================
SET NAMES utf8mb4;
-- =============================================
-- 步骤1: 从备份表恢复数据到 yz_role_menus
-- =============================================
-- 如果 yz_role_menus 表被删除,先创建它
CREATE TABLE IF NOT EXISTS yz_role_menus (
id INT AUTO_INCREMENT PRIMARY KEY,
role_id INT NOT NULL,
menu_id INT NOT NULL,
create_time DATETIME DEFAULT CURRENT_TIMESTAMP,
create_by VARCHAR(50) NULL,
UNIQUE KEY uk_role_menu (role_id, menu_id),
INDEX idx_role_id (role_id),
INDEX idx_menu_id (menu_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关联表(备份恢复)';
-- 从备份表恢复数据
INSERT INTO yz_role_menus (id, role_id, menu_id, create_time, create_by)
SELECT id, role_id, menu_id, create_time, create_by
FROM yz_role_menus_backup
ON DUPLICATE KEY UPDATE
menu_id = VALUES(menu_id),
create_time = VALUES(create_time),
create_by = VALUES(create_by);
SELECT '数据恢复完成' AS message;
-- =============================================
-- 步骤2: 如果需要移除 menu_ids 字段(可选)
-- =============================================
-- 注意:如果确定要移除新字段,可以执行以下命令
-- ALTER TABLE yz_roles DROP COLUMN menu_ids;