GORM访问mysql数据库之建表

GORM访问mysql数据库之建表

创建go项目

GOPROXY=https://goproxy.cn,direct

在这里插入图片描述

go代码

package main

import (
	"fmt"
	"gorm.io/gorm"
	"gorm.io/gorm/logger"
	"log"
	"os"
	"time"
)
import "gorm.io/driver/mysql"

type Product struct {
	gorm.Model // 定义了一些公用字段
	Code       string
	Price      uint
}

func main() {
	//dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
	//db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})

	dsn := "user:pass@tcp(127.0.0.1:3306)/gotest?charset=utf8mb4&parseTime=True&loc=Local"

	// 设置全局的logger,这个logger在我们执行每个sql语句的时候会打印每一行sql
	// sql才是最重要的,本着这个原则我们尽量是每个api背后的sql语句是什么
	newLogger := logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags), // io.writer
		//logger.Config{
		//	SlowThreshold: time.Second,   // 慢SQL阈值
		//	LogLevel:      logger.Silent, // Log level
		//	Colorful:      false,         // 禁用彩色打印
		//},
		logger.Config{
			SlowThreshold: time.Second, // 慢SQL阈值
			LogLevel:      logger.Info, // Log level info打印所有
			Colorful:      true,        // 禁用彩色打印
		},
	)

	db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
		Logger: newLogger,
	})
	if err != nil {
		panic(err)
	} else {
		fmt.Println("数据库链接成功!")
	}

	// 定义一个表结构,将表结构直接生成对于的表 - migrations,其本质就是定义一个struct

	// 1. 迁移 schema
	// &Product{}实例化,不需要数据,只要结构
	err = db.AutoMigrate(&Product{}) // 如果日志打开
	if err != nil {
		panic(err)
	} else {
		fmt.Println("数据库表迁移 schema成功!")
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Narutolxy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值