GORM似乎自己捏造了表名

  • 本文关键字:自己 GORM go go-gorm
  • 更新时间 :
  • 英文 :


我有一个大猩猩/mux网站,我需要使用GORM进行数据库处理。

首先,我只是想做一个hello world,看看我是否可以访问数据库。

所以有以下代码:

type user struct {
user_id  int
username string
email    string
pw_hash  string
}
func gormo(w http.ResponseWriter, r *http.Request) {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
var user user
db.Find(&user)
fmt.Println(user)
}

现在,数据库有一个名为user的表,我只想从它返回一些东西。当这段代码运行时,我得到以下命令行错误:

no such table: users
[0.217ms] [rows:0] SELECT * FROM `users`

这很奇怪,在我的代码中没有任何地方有任何叫做"用户"的东西,在我的数据库中也没有。这是从哪里来的,为什么GORM似乎把它放在那里?

您的数据库中还没有任何内容。好吧,反正不是GORM创造的。首先需要进行迁移。这将创建您的表。你可以这样做:

db.AutoMigrate(&user{})
此外,GORM更喜欢约定而不是配置,默认情况下它将表名复数化。因此,一旦创建了表,它的名称将是users

编辑:你可能需要让你的结构,连同它的字段,通过大写他们的名字,外部可见。

相关内容

  • 没有找到相关文章

最新更新