123456789101112131415161718192021222324252627282930313233343536373839 |
- package initialize
- import (
- "dy-admin/pkg/comopts"
- "fmt"
- "gorm.io/driver/mysql"
- "gorm.io/gorm"
- "gorm.io/gorm/logger"
- )
- func GormMysqlByConfig(opts *comopts.MySQLOptions) (*gorm.DB, error) {
- dsn := fmt.Sprintf(`%s:%s@tcp(%s)/%s?charset=utf8&parseTime=%t&loc=%s`,
- opts.Username,
- opts.Password,
- opts.Host,
- opts.Database,
- true,
- "Local")
- db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{
- Logger: logger.Default.LogMode(logger.LogLevel(opts.LogLevel)),
- })
- if err != nil {
- return nil, err
- }
- sqlDB, err := db.DB()
- if err != nil {
- return nil, err
- }
- sqlDB.SetMaxOpenConns(opts.MaxOpenConnections)
- sqlDB.SetConnMaxLifetime(opts.MaxConnectionLifeTime)
- sqlDB.SetMaxIdleConns(opts.MaxIdleConnections)
- return db, nil
- }
|