-- =============================================
-- 角色权限回滚脚本
-- 如果迁移出现问题，可以从备份表恢复数据
-- =============================================

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;

