beego ORM 创建模型,生成表。遇到的一些坑。
坑,直接执行 bee migrate 报错#
2019/12/25 21:26:32 FATAL ▶ 0004 Could not show migrations table: Error 1045: Access denied for user 'root'@'localhost' (using password: NO)
model 只是创建#
我们需要在 controller 中定义方法,路由 执行 model#
另外,bee migrate 不会帮我们生成迁移,只会执行迁移。#
如何使用 orm 创建 controller 呢?#
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 在路由中调用控制器#
即可完成创建
查看数据库
主要分析#
开启自动创建表#
// 自动创建表 参数二为是否开启创建表 参数三是否更新表
orm.RunSyncdb("default",true,true)
bee run 会自动检查.#
请开启 自动创建表
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: