分析:明明就有这个table,但居然查询时,就说没有这个table。
code如下'''
db := models.GetDBConn()
var channelStat models.WrsChannelStat
err = db.Where("token = ?", userValidate.Token).First(&channelStat).Error
if err != nil {
fmt.Println(err)
c.JSON(200, gin.H{"code": -4, "msg": "channel-stat-log does not exist! pls check."})
return
}
'''
会不会是因为token没有成为index索引导致?
虽说应该不会,但我仍然修改了Model。
Token string `gorm:"uniqueIndex" json:"token"`
果然,仍然打印此告警, no such table。
检查另外一个更新此table的操作语句:
channelStat.ExitTime = time.Now()
channelStat.Duration = channelStat.ExitTime.Unix() - channelStat.EnterTime.Unix()
db.Update(&channelStat)
保存table应该用db.Save(&channelStat)。
果然,修改后操作正常了!