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)
title

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 在路由中调用控制器

即可完成创建
title

查看数据库
title


主要分析

开启自动创建表

//自动创建表 参数二为是否开启创建表 参数三是否更新表
orm.RunSyncdb("default",true,true)

bee run 会自动检查.

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

请开启 自动创建表


本作品采用《CC 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1106
排名:64
访问:12.2 万
私信
所有博文
社区赞助商