无法插入新文章。原因:%!(EXTRA sqlite3.Error=no such table: articles) Beego

huangapple go评论87阅读模式
英文:

Couldn't insert new article. Reason: %!(EXTRA sqlite3.Error=no such table: articles) Beego

问题

在尝试将文章添加到articles表时,出现了错误信息"Couldn't insert new article. Reason: %!(EXTRA sqlite3.Error=no such table: articles"。

models.go

package models

type Article struct {
    Id     int    `form:"-"`
    Name   string `form:"name,text,name:" valid:"MinSize(5);MaxSize(20)"`
    Client string `form:"client,text,client:"`
    Url    string `form:"url,text,url:"`
}

func (a *Article) TableName() string {
    return "articles"
}

Add函数的一部分

if err == orm.ErrNoRows || err == orm.ErrMissPK {
     beego.Debug("No article found matching details supplied. Attempting to insert article: ", article)
     id, err := o.Insert(&article)
     if err == nil {
         msg := fmt.Sprintf("Article inserted with id:", id)
         beego.Debug(msg)
         flash.Notice(msg)
         flash.Store(&manage.Controller)
      } else {
         msg := fmt.Sprintf("Couldn't insert new article. Reason: ", err)
         beego.Debug(msg)
         flash.Error(msg)
         flash.Store(&manage.Controller)
      }
} else {
     beego.Debug("Article found matching details supplied. Cannot insert")
}

请帮忙看看。我不知道我做错了什么。

英文:

Getting this error Couldn't insert new article. Reason: %!(EXTRA sqlite3.Error=no such table: articles when trying to add an article to table articles.

models.go

package models

type Article struct {
    Id     int    `form:"-"`
    Name   string `form:"name,text,name:" valid:"MinSize(5);MaxSize(20)"`
    Client string `form:"client,text,client:"`
    Url    string `form:"url,text,url:"`
}

func (a *Article) TableName() string {
    return "articles"
}

part of my Add function

if err == orm.ErrNoRows || err == orm.ErrMissPK {
     beego.Debug("No article found matching details supplied. Attempting to insert article: ", article)
     id, err := o.Insert(&article)
     if err == nil {
         msg := fmt.Sprintf("Article inserted with id:", id)
         beego.Debug(msg)
         flash.Notice(msg)
         flash.Store(&manage.Controller)
      } else {
         msg := fmt.Sprintf("Couldn't insert new article. Reason: ", err)
         beego.Debug(msg)
         flash.Error(msg)
         flash.Store(&manage.Controller)
      }
} else {
     beego.Debug("Article found matching details supplied. Cannot insert")
}

Please assist. I don't know what am doing wrong.

答案1

得分: 0

我得到了答案,我需要同步我的数据库(类似于Django中的python manage.py makemigrations/migrate)。所以我在main.go文件中编辑了我的主函数:

func main() {
    err := orm.RunSyncdb("default", false, false)
    if err != nil {
        beego.Error(err)
    }
    beego.Run()
}

这对我有效。

英文:

I got the answer, I need to Sync my database(similar with Django >> python manage.py makemigrations/migrate). So I edited my main function inside main.go to:

func main() {
    err := orm.RunSyncdb("default", false, false)
    if err != nil {
        beego.Error(err)
    }
    beego.Run()
}

This works for me.

huangapple
  • 本文由 发表于 2015年8月21日 19:14:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/32138895.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定