gorm配置
296字小于1分钟
2025-02-16
使用ID为主键
默认情况下,名为 ID 的字段会作为表的主键
也可以通过标签 primaryKey 将其它字段设为主键
复数表名
GORM 使用结构体名的 蛇形命名 作为表名。对于结构体 User,根据约定,其表名为 users
如果不想用复数表名,可以在配置中修改
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{
NamingStrategy: schema.NamingStrategy{
TablePrefix: "t_", // 表名前缀
SingularTable: true, // 使用单数表名
NoLowerCase: true, // 关闭蛇形命名
NameReplacer: strings.NewReplacer("CID", "Cid"), // use name replacer to change struct/field name before convert it to db name
},
})
也可以使用TableName函数进行自定义表名
func (User) TableName() string {
return "profiles"
}
蛇形列名
使用gorm:"column:name"进行自定义列名
特殊的时间字段
CreatedAt
对于有 CreatedAt 字段的模型,创建记录时,如果该字段值为零值,则将该字段的值设为当前时间
UpdatedAt
对于有 UpdatedAt 字段的模型,更新记录时,将该字段的值设为当前时间。创建记录时,如果该字段值为零值,则将该字段的值设为当前时间
DeletedAt
软删除