42 lines
1.4 KiB
SQL
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;
|
|
|