Gorm 获取列名

Skh*_*haz 5 go go-gorm

我在 gorm 中有以下模型

type Person struct {
    ID        uuid.UUID      `gorm:"type:uuid;default:uuid_generate_v4()"`
    Name      string         `gorm:"not null,type:text"`
    CreatedAt time.Time      `gorm:"autoCreateTime"`
    UpdatedAt time.Time      `gorm:"autoUpdateTime"`
    DeletedAt gorm.DeletedAt `gorm:"index,->"`
}
Run Code Online (Sandbox Code Playgroud)

是否可以获取列名?我想要 gorm 将生成的列名

Ser*_*nov 5

可能的解决方案

\n

解决方案是从模型中检索 (\xc2\xabparse\xc2\xbb) 架构。
\n请注意:来自模型 \xe2\x80\x94,而不是来自 \xc2\xabphysical\xc2\xbb 数据库。

\n

参考

\n\n

示例程序草稿

\n

go.mod

\n
module gorm/example\n\ngo 1.18\n\nrequire (\n    github.com/google/uuid v1.3.0\n    gorm.io/gorm v1.23.8\n)\n\nrequire (\n    github.com/jinzhu/inflection v1.0.0 // indirect\n    github.com/jinzhu/now v1.1.4 // indirect\n)\n
Run Code Online (Sandbox Code Playgroud)\n

go.sum

\n
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=\ngithub.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=\ngithub.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E=\ngithub.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc=\ngithub.com/jinzhu/now v1.1.4 h1:tHnRBy1i5F2Dh8BAFxqFzxKqqvezXrL2OW1TnX+Mlas=\ngithub.com/jinzhu/now v1.1.4/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8=\ngorm.io/gorm v1.23.8 h1:h8sGJ+biDgBA1AD1Ha9gFCx7h8npU7AsLdlkX0n2TpE=\ngorm.io/gorm v1.23.8/go.mod h1:l2lP/RyAtc1ynaTjFksBde/O8v9oOGIApu2/xRitmZk=\n
Run Code Online (Sandbox Code Playgroud)\n

程序 (main.go

\n
module gorm/example\n\ngo 1.18\n\nrequire (\n    github.com/google/uuid v1.3.0\n    gorm.io/gorm v1.23.8\n)\n\nrequire (\n    github.com/jinzhu/inflection v1.0.0 // indirect\n    github.com/jinzhu/now v1.1.4 // indirect\n)\n
Run Code Online (Sandbox Code Playgroud)\n

建造

\n
$ go build main.go\n
Run Code Online (Sandbox Code Playgroud)\n

跑步

\n
$ ./main\n
Run Code Online (Sandbox Code Playgroud)\n

输出

\n
Model to schema field name map: map[CreatedAt:created_at DeletedAt:deleted_at ID:id Name:name UpdatedAt:updated_at]\nCreatedAt field is mapped to created_at column\n
Run Code Online (Sandbox Code Playgroud)\n