mirror of
https://github.com/go-admin-team/go-admin.git
synced 2026-10-01 05:07:06 +00:00
一个业务模块要在界面上可用,需要四类数据协同: sys_api 后端路由登记,Casbin 据此判定 sys_menu 侧边栏菜单,含目录 M、菜单 C、按钮 F 三级 sys_menu_api_rule 菜单与接口的关联,角色保存时据此生成策略 casbin_rule 实际生效的权限策略 菜单的 menu_name 与前端组件 name 保持一致(DemoProduct),按钮的 permission 与前端 v-permisaction 标识一致(demo:product:add 等)。 策略写入 casbin_rule 而非 sys_casbin_rule:后者对应的 models.CasbinRule 是历史遗留,其 7 列 size:512 唯一索引在 MySQL 下会超出索引长度限制,实际 生效的是 adapter 创建的 casbin_rule 表。 所有写入均为存在则更新、不存在则插入,迁移可安全地在已有数据的库上执行。 实测:在含 67 条菜单、121 条接口的库上执行后各表数据正确;清除版本记录重 跑一次,各表行数不变,确认幂等。