全局里的 DB 初始化的 init 方法

来源:1-5 为grpc服务添加viper和zap

无解的游戏

2023-03-04 22:09:53

问题描述:

使用了initializa.InitDB之后,那么原来的global.go里的init的初始化的就冗余了

相关代码:

initialize.InitDB()
func init() {
	// 配置打印 SQL 日志
	newLogger := logger.New(
		log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer(日志输出的目标,前缀和日志包含的内容——译者注)
		logger.Config{
			SlowThreshold:             time.Second, // 慢 SQL 阈值
			LogLevel:                  logger.Info, // 日志级别
			IgnoreRecordNotFoundError: true,        // 忽略ErrRecordNotFound(记录未找到)错误
			Colorful:                  true,        // 启用彩色打印
		},
	)

	// 后续需要将这些内容写到配置文件
	dsn := "root:root@tcp(127.0.0.1:3306)/mxshop_user_srv?charset=utf8mb4&parseTime=True&loc=Local"
	var err error
	Db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{
		// 设置全局 日志
		Logger: newLogger,
		NamingStrategy: schema.NamingStrategy{
			SingularTable: true, // 取消表复数
		},
	})
	if err != nil {
		panic(err)
	}
}
写回答

1回答

bobby

2023-03-06

后面第二阶段,也就是第6阶段后会重构这里的初始化的,这里先能确保运行,二阶段会讲解如何更加工程化

0

Go开发工程师

未来3-5年企业高性能项目不可替代的语言,从基础到项目实战再到重构,真正从入门到精通

508 学习 · 577 问题

查看课程