package migrate import ( "context" "database/sql" "time" _ "github.com/jackc/pgx/v5/stdlib" ) func openDB(ctx context.Context, dsn string) (*sql.DB, error) { db, err := sql.Open("pgx", dsn) if err != nil { return nil, err } db.SetConnMaxLifetime(0) db.SetConnMaxIdleTime(5 * time.Minute) db.SetMaxIdleConns(5) db.SetMaxOpenConns(10) if err := db.PingContext(ctx); err != nil { db.Close() return nil, err } return db, nil }