为了账号安全,请及时绑定邮箱和手机立即绑定

有什么方法可以摆脱 GORM 中的自动列重命名?

有什么方法可以摆脱 GORM 中的自动列重命名?

Go
米琪卡哇伊 2022-06-27 11:15:23
我打算将 GORM 与现有数据库一起使用,因此我正在为它创建一些模型。但是,我遇到了一个问题 - GORM 会自动将所有列重命名为小写蛇形。我真的不需要它,因为我使用的数据库并没有真正使用这样的名称。我发现,我可以使用标签`gorm:"column_name:`为了防止我的专栏被重命名。但是,这对我来说似乎并不是一个可行的解决方案,因为我有一堆模型,里面有很多列。有没有办法从 GORM 中关闭这个“重命名”策略,或者自动为我的所有模型添加标签?我的模型看起来像这样:type FOOD_DES struct {NDB_NO string `gorm:"primary_key"`FdGrp_Cd FD_GROUPLong_Desc stringShrt_Desc stringComName stringManufacName stringSurvey stringRef_desc stringRefuse float32SciName stringN_Factor float32Pro_Factor float32Fat_Factor float32CHO_Factor float32}
查看完整描述

1 回答

?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

来自文档:


GORM 允许用户通过覆盖需要实现接口 Namer 的默认 NamingStrategy 来更改命名约定


type Namer interface {

  TableName(table string) string

  ColumnName(table, column string) string

  JoinTableName(table string) string

  RelationshipFKName(Relationship) string

  CheckerName(table, column string) string

  IndexName(table, column string) string

}

所以只需实现接口Namer。


在旧版本中,您可以这样做(参考)


gorm.AddNamingStrategy(&gorm.NamingStrategy{

    DB: func(name string) string {

        return name

    },

    Table: func(name string) string {

        return name

    },

    Column: func(name string) string {

        return name

    },

})


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 187 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信