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 // }