package db import ( "database/sql" "fmt" _ "github.com/lib/pq" "pink_fox/internal/app/config" "time" ) func CreateConnection(dbConf *config.DB) (*sql.DB, error) { psqlInfo := fmt.Sprintf("host=%s port=%s user=%s password=%s dbname=%s sslmode=disable", dbConf.Host, dbConf.Port, dbConf.User, dbConf.Password, dbConf.Database) var err error var db *sql.DB for i := 0; i < 10; i++ { db, err = sql.Open("postgres", psqlInfo) if err == nil { err = db.Ping() if err == nil { return db, nil } } time.Sleep(200 * time.Millisecond) } return nil, fmt.Errorf("не удалось подключиться к базе данных: %v", err) }