0

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.

Oladayo Oyelade
  • 225
  • 2
  • 9

1 Answers1

0

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.

Oladayo Oyelade
  • 225
  • 2
  • 9