【问题标题】:How to set singular name for a table in gorm如何为gorm中的表设置单数名称
【发布时间】:2017-11-19 05:16:54
【问题描述】:
type user struct {
    ID       int
    Username string `gorm:"size:255"`
    Name     string `gorm:"size:255"`
}

我想使用这个模型创建一个表“用户”。但表名自动设置为“用户”。我知道这是 gorm 的默认行为。但我希望表名是“用户”。

【问题讨论】:

  • 为了完整起见:您可以使用 db.SingularTable(true) 全局使用单数表名。

标签: go go-gorm


【解决方案1】:

为您的结构设置方法TableName

func (user) TableName() string {
    return "user"
}

链接:https://gorm.io/docs/models.html#conventions

【讨论】:

  • 刚刚意识到 OP 使用的是user 而不是User
【解决方案2】:

Gorm 有一个内置方法,该方法将在全局级别设置,因此所有表都是单数的。

对于gorm v1,你可以这样做:

db.SingularTable(true)

对于 v2,它有点冗长:

db, err := gorm.Open(postgres.Open(connStr), &gorm.Config{
    NamingStrategy: schema.NamingStrategy{
        SingularTable: true,
    },
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 2021-11-24
    • 2021-09-30
    • 2014-05-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多