无法通过内置方法添加列和创建用户

我正在尝试使用数据库。我被建议使用Gorm,但是,由于某些方法不起作用,因此很烦人。

对于模型,我有:

type UserModel struct {
    first_name string
    last_name string
    }

这是我的示例代码及其结果。

下面的代码有效,但在我的数据库中,表名是user_models

 db.Migrator().CreateTable(&UserModel{})

以下代码不起作用

err := db.Migrator().AddColumn(&UserModel{}, "first_name")

无法查找名称为:first_name的字段

我尝试了这个,它的工作原理

db.Exec("ALTER TABLE user_models ADD first_name varchar(64);")

另一个不起作用

user := UserModel{first_name: "Jinzhu", last_name: "name"}

不是错误,而是插入first_name:空和last_name:空

最后,有什么能帮我解决这些问题吗?


侃侃无极
浏览 102回答 1
1回答

小怪兽爱吃肉

您的两个字段“first_name”和“last_name”(两者都不遵循 Go 命名建议)是未导出的,因为它们以小写字母开头。这意味着Gorm不关注这些领域。我建议使用以下方法,它将使用Gorm推荐的结构标签实现您想要的字段名称:type UserModel struct {     FirstName string `gorm:"column:first_name"`     LastName string `gorm:"column:last_name"`}有关详细信息,请参阅 https://gorm.io/docs/models.html#Conventions。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go