123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package lxDb
- import (
- "fmt"
- "git.listensoft.net/tool/lxutils/lxzap"
- "go.uber.org/zap"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- "gorm.io/gorm/schema"
- "os"
- )
- // DB2.0 数据库连接 gorm2.0
- var DB *gorm.DB //gs 数据库
- type DbConfig struct {
- Host string
- Port string
- User string
- Password string
- Database string
- Charset string
- }
- func InitDB(env string, conf DbConfig) {
- //dsn := "user:pass@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
- //newLogger := logger.New(
- // //zap.NewStdLog(),
- // log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer
- // logger.Config{
- // SlowThreshold: 200 * time.Millisecond, // Slow SQL threshold
- // LogLevel: logger.Info, // Log level
- // IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
- // Colorful: false, // Disable color
- // },
- //)
- if conf.Host == "" {
- DB = nil
- fmt.Println("未配置Db连接")
- return
- }
- if conf.Charset == "" {
- conf.Charset = "utf8mb4"
- }
- dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s&parseTime=True&loc=Local",
- conf.User, conf.Password, conf.Host, conf.Port, conf.Database, conf.Charset)
- if env == "dev" {
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- Logger: logger.Default.LogMode(logger.Info),
- NamingStrategy: schema.NamingStrategy{
- SingularTable: true, // 使用单数表名,启用该选项,此时,`User` 的表名应该是 `user`
- },
- })
- if err != nil {
- fmt.Println(err.Error())
- os.Exit(-1)
- }
- DB = db
- } else {
- logger2 := lxzap.NewGormZap(zap.L())
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- //Logger: logger.Default.LogMode(logger.Info),
- Logger: logger2,
- NamingStrategy: schema.NamingStrategy{
- SingularTable: true, // 使用单数表名,启用该选项,此时,`User` 的表名应该是 `user`
- },
- })
- if err != nil {
- fmt.Println(err.Error())
- os.Exit(-1)
- }
- DB = db
- }
- //db.AutoMigrate(TaskData{}, Task{}, Version{})
- }
|