24 lines
478 B
Go
24 lines
478 B
Go
package repository
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
|
|
"github.com/uptrace/bun"
|
|
"github.com/uptrace/bun/dialect/pgdialect"
|
|
"github.com/uptrace/bun/driver/pgdriver"
|
|
)
|
|
|
|
func NewDB(dsn string) (*bun.DB, error) {
|
|
connector := pgdriver.NewConnector(pgdriver.WithDSN(dsn))
|
|
sqlDB := sql.OpenDB(connector)
|
|
sqlDB.SetMaxOpenConns(10)
|
|
db := bun.NewDB(sqlDB, pgdialect.New())
|
|
|
|
if err := db.Ping(); err != nil {
|
|
return nil, fmt.Errorf("ping database: %w", err)
|
|
}
|
|
|
|
return db, nil
|
|
}
|