Files
YaeMikoBot/database/database.go
2025-08-27 23:26:36 +03:00

52 lines
876 B
Go

package database
import (
"encoding/json"
"fmt"
"io"
"log"
"os"
"gorm.io/driver/postgres"
"gorm.io/gorm"
)
type config struct {
Host string `json:"host"`
User string `json:"user"`
Password string `json:"password"`
Database string `json:"database"`
}
var Database *gorm.DB
var conf *config
func loadConfig() {
file, err := os.Open("./config.json")
if err != nil {
log.Fatalln(err)
}
data, err := io.ReadAll(file)
if err != nil {
log.Fatalln(err)
}
conf = new(config)
err = json.Unmarshal(data, conf)
if err != nil {
log.Fatalln(err)
}
}
func getDSN() string {
return fmt.Sprintf("postgresql://%s:%s@%s/%s?sslmode=disable", conf.User, conf.Password, conf.Host, conf.Database)
}
func Connect() {
var err error
loadConfig()
Database, err = gorm.Open(postgres.Open(getDSN()), new(gorm.Config))
if err != nil {
log.Fatalln(err)
}
}