MCPcopy Index your code
hub / github.com/apache/devlake / NewGormDbEx

Function NewGormDbEx

backend/core/runner/db.go:51–101  ·  view source on GitHub ↗

NewGormDbEx acts like NewGormDb but accept extra sessionConfig

(configReader config.ConfigReader, logger log.Logger, sessionConfig *dal.SessionConfig)

Source from the content-addressed store, hash-verified

49
50// NewGormDbEx acts like NewGormDb but accept extra sessionConfig
51func NewGormDbEx(configReader config.ConfigReader, logger log.Logger, sessionConfig *dal.SessionConfig) (*gorm.DB, errors.Error) {
52 dbLoggingLevel := gormLogger.Error
53 switch strings.ToLower(configReader.GetString("DB_LOGGING_LEVEL")) {
54 case "silent":
55 dbLoggingLevel = gormLogger.Silent
56 case "warn":
57 dbLoggingLevel = gormLogger.Warn
58 case "info":
59 dbLoggingLevel = gormLogger.Info
60 }
61
62 idleConns := configReader.GetInt("DB_IDLE_CONNS")
63 if idleConns == 0 {
64 idleConns = 10
65 }
66 dbMaxOpenConns := configReader.GetInt("DB_MAX_CONNS")
67 if dbMaxOpenConns <= 0 {
68 dbMaxOpenConns = 100
69 }
70
71 dbConfig := &gorm.Config{
72 Logger: gormLogger.New(
73 logger,
74 gormLogger.Config{
75 SlowThreshold: time.Second, // Slow SQL threshold
76 LogLevel: dbLoggingLevel, // Log level
77 IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger
78 Colorful: true, // Disable color
79 },
80 ),
81 // PrepareStmt: sessionConfig.PrepareStmt,
82 SkipDefaultTransaction: sessionConfig.SkipDefaultTransaction,
83 }
84 dbUrl := configReader.GetString("DB_URL")
85 if dbUrl == "" {
86 return nil, errors.BadInput.New("DB_URL is required, please set it in environment variable or .env file")
87 }
88 db, err := MakeDbConnection(dbUrl, dbConfig)
89 if err != nil {
90 return nil, errors.Convert(err)
91 }
92 sqlDB, err := db.DB()
93 if err != nil {
94 return nil, errors.Convert(err)
95 }
96 sqlDB.SetMaxIdleConns(idleConns)
97 sqlDB.SetMaxOpenConns(dbMaxOpenConns)
98 sqlDB.SetConnMaxLifetime(time.Hour)
99
100 return db, errors.Convert(err)
101}
102
103func getUserString(u *url.URL) string {
104 userString := u.User.Username()

Callers 1

NewGormDbFunction · 0.85

Calls 5

MakeDbConnectionFunction · 0.85
GetStringMethod · 0.80
GetIntMethod · 0.80
NewMethod · 0.65
ConvertMethod · 0.45

Tested by

no test coverage detected