admin_dashboard_backend/pkg/db/db_connection.go

52 lines
975 B
Go

package db
import (
"database/sql"
"encoding/json"
"log"
"os"
_ "github.com/go-sql-driver/mysql"
)
type Config struct {
Host string `json:"databaseHost"`
Port string `json:"databasePort"`
User string `json:"databaseUser"`
Password string `json:"databasePassword"`
DBName string `json:"database"`
}
var DB *sql.DB
func InitDB() {
config := loadConfig()
dsn := config.User + ":" + config.Password + "@tcp(" + config.Host + ":" + config.Port + ")/" + config.DBName
var err error
DB, err = sql.Open("mysql", dsn)
if err != nil {
log.Fatal("Error connecting to database:", err)
}
err = DB.Ping()
if err != nil {
log.Fatal("Error pinging database:", err)
}
}
func loadConfig() Config {
file, err := os.ReadFile("config.json")
if err != nil {
log.Fatal("Error reading config file:", err)
}
var config Config
err = json.Unmarshal(file, &config)
if err != nil {
log.Fatal("Error parsing config file:", err)
}
return config
}