52 lines
975 B
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
|
|
}
|