Skip to content

Instantly share code, notes, and snippets.

@bensonmacharia
Last active May 1, 2023 20:19
Show Gist options
  • Save bensonmacharia/d728119b4cd7d304a0a2ed3c88f88bce to your computer and use it in GitHub Desktop.
Save bensonmacharia/d728119b4cd7d304a0a2ed3c88f88bce to your computer and use it in GitHub Desktop.
package database
import (
"fmt"
"log"
"os"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var Db *gorm.DB
func InitDb() *gorm.DB {
Db = connectDB()
return Db
}
func connectDB() *gorm.DB {
var err error
host := os.Getenv("DB_HOST")
username := os.Getenv("DB_USER")
password := os.Getenv("DB_PASSWORD")
dbname := os.Getenv("DB_NAME")
port := os.Getenv("DB_PORT")
dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, dbname)
//log.Println("dsn : ", dsn)
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal("Error connecting to database :", err)
return nil
}
log.Println("`Successfully connected to the database")
return db
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment