|
@@ -47,6 +47,12 @@ type ruleRow struct {
|
|
|
V3 string `gorm:"column:v3"`
|
|
V3 string `gorm:"column:v3"`
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+// TableName 锁定表名(**必须显式**:GORM 会把 `ruleRow` 复数化为 `rule_rows`,
|
|
|
|
|
+// 而目标态 DDL 表名是 `casbin_rule`——不写这一行,LoadPolicy 会去读一张不存在的表
|
|
|
|
|
+// `rule_rows`,NewEnforcer 直接报 "no such table",策略永远加载不到;
|
|
|
|
|
+// AddPolicy/SavePolicy 同理会写到错误的表。AC-14 接线时首次真库/文件库跑通暴露,属 S1 遗留缺陷)。
|
|
|
|
|
+func (ruleRow) TableName() string { return "casbin_rule" }
|
|
|
|
|
+
|
|
|
// 编译期断言:gormAdapter 须满足 casbin persist.Adapter(签名漂移即编译失败)。
|
|
// 编译期断言:gormAdapter 须满足 casbin persist.Adapter(签名漂移即编译失败)。
|
|
|
var _ persist.Adapter = (*gormAdapter)(nil)
|
|
var _ persist.Adapter = (*gormAdapter)(nil)
|
|
|
|
|
|