自助开通的新租户 tenant_id 从 1042 到 1051 共 10 个,管理员登录后侧边栏只有首页,接口返回 200 但权限列表为空。老租户都正常,模板租户里能看到 5 个默认角色。日志里能对上时间点,这种反而好排。

开通脚本只建了租户记录和第一个用户,角色和权限的初始化放在另一个脚本里,没有串进开通流程。新租户拿到的是一个空权限集,登录不报错但什么都点不开。这一点先确认清楚,后面就不用反复试。

SELECT tenant_id, COUNT(*) FROM sys_role GROUP BY tenant_id HAVING COUNT(*) = 0;
INSERT INTO sys_role (tenant_id, code, name) SELECT 1043, code, name FROM sys_role WHERE tenant_id = 1;

「租户初始化默认角色」改完先别急着全量,挑一台机器放半天,真有问题这段时间就能看出来。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

处理上按这个顺序:开通流程里加一步 从模板租户复制默认角色和菜单;复制完做一次校验 权限条数为 0 就回滚整个开通;给存量空权限租户跑一次补数脚本。

结果对不对很好判断,新租户管理员登录后侧边栏出现 5 个菜单,权限列表接口返回的条数从 0 变成 26。

作者 9823189