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