gorm

来源:5-13 商品管理功能Controller&View开发 (中)

szuxxy

2019-11-27

看到cap老师说到了gorm,于是研究了下。
model下的map.go

package model

import (
	"github.com/jinzhu/gorm"
	_ "github.com/jinzhu/gorm/dialects/mysql"
)

var db *gorm.DB

func Init() {
	defer db.Close()
	db, err := gorm.Open("mysql", "golang:golang@/golangtestdb?charset=utf8&parseTime=True&loc=Local")
	if err != nil {
		panic(err)
	}
	//设置全局表名禁用复数
	db.SingularTable(true)
    //下面是根据定义好的结构体生成数据库中的表
	db.Table("movie").CreateTable(&Movie{})
	db.Table("user").CreateTable(&User{})
	db.Table("product").CreateTable(&Product{})

}

图片描述图片描述
发现数据库中的表倒是能生成。不过有三个地方不是很明白:
1.为什么会有个panic?
2.我后面,指跑过一次main.go后接着在User里加了两个字段然后再跑main.go,没生成进去,是应该怎么让后面加的或者修改的也生成到db里去呢?
3.感觉初始化数据库表里的代码放在这个main里不太合适,应该怎么改下比较好点啊?

写回答

1回答

Cap

2019-12-02

  1. panic 问题 要具体看下;

  2. 第二个问题要 用到 gorm 里面的 迁移功能;

  3. 第三个问题要放到同意的初始化文件,或者是安装文件中;

0
0

全流程开发 GO实战电商网站高并发秒杀系统

运用架构设计与系统化思维,从容应对不同流量等级的“秒杀”场景

1476 学习 · 443 问题

查看课程