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 }