package initializers import ( "api/src/storages/psql" "fmt" "log/slog" "os" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" ) func InitDBconnection() { slog.Info("Init DB connection") dsn := fmt.Sprintf( "host=%s user=%s password=%s dbname=%s port=%s sslmode=disable TimeZone=Asia/Yekaterinburg", os.Getenv("PGHOST"), os.Getenv("PGUSER"), os.Getenv("PGPASSWORD"), os.Getenv("PGDATABASE"), os.Getenv("PGPORT"), ) db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), }) if err != nil { slog.Error("failed to connect database", "error", err) os.Exit(2) } psql.PSQL_GORM_DB = db sql, err := db.DB() if err != nil { slog.Error("failed to get database", "error", err) os.Exit(2) } err = sql.Ping() if err != nil { slog.Error("failed to ping database", "error", err) os.Exit(2) } slog.Info("connected to database") }