beego ORM 建立模型,生成表。遇到的一些坑。

kuibatian發表於2019-12-25

2019/12/25 21:26:32 FATAL ▶ 0004 Could not show migrations table: Error 1045: Access denied for user 'root'@'localhost' (using password: NO)
title

我們需要在controller 中定義方法,路由 執行model

另外,bee migrate不會幫我們生成遷移,只會執行遷移。

models/model.go

package models

// model 在一個裡面寫.多個表

import (
    _ "github.com/go-sql-driver/mysql"
    "github.com/astaxie/beego/orm"
    "time"
)

//表的設計

//定義一個結構體
type User struct {
    Id int
    Name string
    PassWord string
    //Pass_Word
}

type Article struct {
    Id int `orm:"pk;auto"`
    ArtiName string `orm:"size(20)"`
    Atime time.Time `orm:"auto_now"`
    Acount int `orm:"default(0);null"`
    Acontent string `orm:"size(500)"`
    Aimg string  `orm:"size(100)"`
}

func init() {
    //ORM運算元據庫

    orm.RegisterDriver("mysql", orm.DRMySQL)

    //獲取連線物件
    // ("%s:%s@tcp(%s:%s)/%s?charset=utf8", dbUser, dbPass, dbHost, dbPort, dbName)
    //orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/bifen?charset=utf8")
    orm.RegisterDataBase("default", "mysql", "root:123456@tcp(127.0.0.1:3306)/bifen?charset=utf8")

    //建立表
    orm.RegisterModel(new(User), new(Article))

    //生成表
    //自動建立表 引數二為是否開啟建立表   引數三是否更新表
    orm.RunSyncdb("default",true,true)
    //操作表

    // 設定為 UTC 時間
    orm.DefaultTimeLoc = time.UTC

}

controllers\default.go

package controllers

import (
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
)

type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.Data["Website"] = "beego.me"
    c.Data["Email"] = "astaxie@gmail.com"
    c.TplName = "test.html"
}

func(c*MainController)Post(){
    c.Data["data"] = "上海一期最棒"
    c.TplName = "test.html"
}

func(c*MainController)ShowGet() {
    //獲取ORM物件
    o := orm.NewOrm()
    c.Data["data"] = "上海"
    c.TplName = "test.html"
}

routers\router.go

package routers

import (
    "bobo/controllers"
    "github.com/astaxie/beego"
)

func init() {
    beego.Router("/", &controllers.MainController{},"get:ShowGet;post:Post")
}

主要是需要在控制器呼叫model 在路由中呼叫控制器

即可完成建立
title

檢視資料庫
title


開啟自動建立表

//自動建立表 引數二為是否開啟建立表 引數三是否更新表
orm.RunSyncdb("default",true,true)

bee run 會自動檢查.

beego ORM建立模型,生成表。遇到的一些坑。

請開啟 自動建立表


相關文章