Database initializes the MySQL connection.
(connString string)
| 16 | |
| 17 | // Database initializes the MySQL connection. |
| 18 | func Database(connString string) { |
| 19 | // Initialize the GORM logger configuration. |
| 20 | newLogger := logger.New( |
| 21 | log.New(os.Stdout, "\r\n", log.LstdFlags), // io writer |
| 22 | logger.Config{ |
| 23 | SlowThreshold: time.Second, // Slow SQL threshold |
| 24 | LogLevel: logger.Info, // Log level. Adjust as needed. |
| 25 | IgnoreRecordNotFoundError: true, // Ignore ErrRecordNotFound error for logger |
| 26 | Colorful: false, // Disable color |
| 27 | }, |
| 28 | ) |
| 29 | |
| 30 | db, err := gorm.Open(mysql.Open(connString), &gorm.Config{ |
| 31 | Logger: newLogger, |
| 32 | }) |
| 33 | // Error |
| 34 | if connString == "" || err != nil { |
| 35 | util.Log().Error("mysql lost: %v", err) |
| 36 | panic(err) |
| 37 | } |
| 38 | sqlDB, err := db.DB() |
| 39 | if err != nil { |
| 40 | util.Log().Error("mysql lost: %v", err) |
| 41 | panic(err) |
| 42 | } |
| 43 | |
| 44 | // Set the connection pool. |
| 45 | // Idle connections. |
| 46 | sqlDB.SetMaxIdleConns(10) |
| 47 | // Open connections. |
| 48 | sqlDB.SetMaxOpenConns(20) |
| 49 | DB = db |
| 50 | |
| 51 | migration() |
| 52 | } |