186 lines
4.7 KiB
Go
186 lines
4.7 KiB
Go
package db
|
|
|
|
// import (
|
|
// "fmt"
|
|
// "log"
|
|
// "nearle/utils"
|
|
// "time"
|
|
|
|
// "gorm.io/driver/mysql"
|
|
// "gorm.io/gorm"
|
|
// )
|
|
|
|
// var DB *gorm.DB
|
|
|
|
// var (
|
|
// DB_DEV *gorm.DB
|
|
// DB_LIVE *gorm.DB
|
|
// )
|
|
|
|
// func DevConnect() {
|
|
|
|
// var DBname string
|
|
// var Username string
|
|
// var Password string
|
|
// var Host string
|
|
// var Port string
|
|
|
|
// var err error
|
|
|
|
// Port, DBname, Password, Username, Host, _, _ = utils.DevConfig()
|
|
|
|
// dsn := Username + ":" + Password + "@tcp" + "(" + Host + ":" + Port + ")/" + DBname + "?" + "parseTime=true&loc=Local"
|
|
|
|
// DB_DEV, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// if err != nil {
|
|
// log.Fatal("❌ Could not connect to Dev database:", err)
|
|
// }
|
|
// setupDB(DB_DEV)
|
|
// fmt.Println("✅ Connected to Dev Database")
|
|
|
|
// // var DBname string
|
|
// // var Username string
|
|
// // var Password string
|
|
// // var Host string
|
|
// // var Port string
|
|
|
|
// // Port, DBname, Password, Username, Host, _, _ = utils.DevConfig()
|
|
|
|
// // dsn := Username + ":" + Password + "@tcp" + "(" + Host + ":" + Port + ")/" + DBname + "?" + "parseTime=true&loc=Local"
|
|
|
|
// // for i := 0; i < 5; i++ {
|
|
// // db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// // if err == nil {
|
|
// // sqlDB, _ := db.DB()
|
|
// // sqlDB.SetMaxIdleConns(100)
|
|
// // sqlDB.SetMaxOpenConns(1000)
|
|
// // sqlDB.SetConnMaxLifetime(time.Hour)
|
|
// // err = sqlDB.Ping()
|
|
// // if err == nil {
|
|
// // log.Println("Successfully connected to the database.")
|
|
// // DB = db
|
|
// // return
|
|
// // }
|
|
// // }
|
|
// // log.Printf("Failed to connect to the database, retrying... (%d/5)\n", i+1)
|
|
// // time.Sleep(2 * time.Second)
|
|
// // }
|
|
// // // log.Fatal("Could not connect to the database:", err)
|
|
|
|
// // // database, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// // // if err != nil {
|
|
// // // panic("Could not connect to the database")
|
|
// // // }
|
|
|
|
// }
|
|
|
|
// func setupDB(database *gorm.DB) {
|
|
// sqlDB, err := database.DB()
|
|
// if err != nil {
|
|
// log.Fatal("❌ Failed to get DB from GORM:", err)
|
|
// }
|
|
// sqlDB.SetMaxIdleConns(10)
|
|
// sqlDB.SetMaxOpenConns(100)
|
|
// sqlDB.SetConnMaxLifetime(30 * time.Minute)
|
|
// }
|
|
|
|
// // func LiveConnect() {
|
|
|
|
// // var DBname string
|
|
// // var Username string
|
|
// // var Password string
|
|
// // var Host string
|
|
// // var Port string
|
|
|
|
// // Port, DBname, Password, Username, Host, _, _ = utils.DevConfig()
|
|
|
|
// // dsn := Username + ":" + Password + "@tcp" + "(" + Host + ":" + Port + ")/" + DBname + "?" + "parseTime=true&loc=Local"
|
|
|
|
// // for i := 0; i < 5; i++ {
|
|
// // db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// // if err != nil {
|
|
// // log.Printf("Failed to connect to the database, retrying... (%d/5)\n", i+1)
|
|
// // log.Println("Error:", err)
|
|
// // time.Sleep(2 * time.Second)
|
|
// // continue
|
|
// // }
|
|
|
|
// // sqlDB, err := db.DB()
|
|
// // if err != nil {
|
|
// // log.Println("Failed to get DB from GORM:", err)
|
|
// // time.Sleep(2 * time.Second)
|
|
// // continue
|
|
// // }
|
|
|
|
// // sqlDB.SetMaxIdleConns(10)
|
|
// // sqlDB.SetMaxOpenConns(100)
|
|
// // sqlDB.SetConnMaxLifetime(time.Hour)
|
|
|
|
// // if err = sqlDB.Ping(); err != nil {
|
|
// // log.Printf("Failed to ping database, retrying... (%d/5)\n", i+1)
|
|
// // log.Println("Error:", err)
|
|
// // time.Sleep(2 * time.Second)
|
|
// // continue
|
|
// // }
|
|
|
|
// // log.Println("Successfully connected to the database.")
|
|
// // DB = db
|
|
// // return
|
|
// // }
|
|
|
|
// // log.Fatal("Could not connect to the database after multiple attempts.")
|
|
|
|
// // }
|
|
|
|
// func LiveConnect() {
|
|
|
|
// var DBname string
|
|
// var Username string
|
|
// var Password string
|
|
// var Host string
|
|
// var Port string
|
|
|
|
// Port, DBname, Password, Username, Host, _, _ = utils.LiveConfig()
|
|
|
|
// // dsn := "zqbuvyrhhf:Package%40%123#@tcp(165.232.178.78:3306)/dbname?parseTime=true"
|
|
|
|
// dsn := Username + ":" + Password + "@tcp" + "(" + Host + ":" + Port + ")/" + DBname + "?" + "parseTime=true&loc=Local"
|
|
|
|
// //database, err := sql.Open("mysql", dsn)
|
|
|
|
// database, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
|
|
// if err != nil {
|
|
// panic("Could not connect to the database")
|
|
// }
|
|
|
|
// sqlDB, err := database.DB()
|
|
// if err != nil {
|
|
// log.Println("Failed to get DB from GORM:", err)
|
|
// panic("Could not connect to the database")
|
|
|
|
// }
|
|
// sqlDB.SetMaxIdleConns(100)
|
|
// sqlDB.SetMaxOpenConns(1000)
|
|
// sqlDB.SetConnMaxLifetime(time.Hour)
|
|
|
|
// if err = sqlDB.Ping(); err != nil {
|
|
// log.Println("Error:", err)
|
|
// panic("Could not connect to the database")
|
|
// }
|
|
|
|
// fmt.Println("Live Database Connected Successfully")
|
|
// DB = database
|
|
|
|
// }
|
|
|
|
// func CloseDB() {
|
|
// sqlDB, err := DB.DB()
|
|
// if err != nil {
|
|
// log.Println("Error retrieving sql.DB from GORM:", err)
|
|
// return
|
|
// }
|
|
// fmt.Println("Connection closed Successfully")
|
|
// sqlDB.Close() // This will close the connection pool
|
|
|
|
// }
|