多租户
- 多租户数据权限采用租户ID(tenant_id)形式
- 通过GORM插件形式实现租户数据隔离
配置示例
type Config struct {
Tenant TenantConfig
...
}
type TenantConfig struct {
Enabled bool
IgnoreTables []string
}
yaml配置
Tenant:
Enabled: true
IgnoreTables:
- sys_tenant
- sys_tenant_package
- sys_menu
- sys_user_role
- sys_user_post
- sys_role_menu
- sys_role_dept
- sys_client
- sys_config
注册多租户插件
//注册多租户插件
if err := db.Use(&plugin.TenantPlugin{
Enabled: c.Tenant.Enabled,
IgnoreTables: c.Tenant.IgnoreTables,
}); err != nil {
panic(err)
}
- Enable 控制租户的是否开启
- IgnoreTables 控制哪些表不使用该插件