95b581e8c5
fix(automation): implement all 6 actions + real cron parser fix(db): pq.Array for TEXT[], add sqlmock tests fix(schema): single source migrations docs: v2 architecture + frontend refactor proposals
28 lines
431 B
Go
28 lines
431 B
Go
package db
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"time"
|
|
|
|
_ "github.com/lib/pq"
|
|
)
|
|
|
|
func Connect(url string) (*sql.DB, error) {
|
|
db, err := sql.Open("postgres", url)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("db open: %w", err)
|
|
}
|
|
|
|
db.SetMaxOpenConns(25)
|
|
db.SetMaxIdleConns(10)
|
|
db.SetConnMaxLifetime(5 * time.Minute)
|
|
|
|
if err := db.Ping(); err != nil {
|
|
db.Close()
|
|
return nil, fmt.Errorf("db ping: %w", err)
|
|
}
|
|
|
|
return db, nil
|
|
}
|