45 lines
624 B
Go

package db
import (
"context"
"database/sql"
"log"
_ "github.com/lib/pq"
)
type Db struct {
*sql.DB
}
type Tx struct {
*sql.Tx
}
func New(url string) (*Db, error) {
db, err := sql.Open("postgres", url)
if err != nil {
return nil, err
}
// test connection
_, err = db.Exec("SELECT 1")
if err != nil {
log.Printf("failed to connect to database: %v", err)
}
return &Db{db}, nil
}
func (d *Db) Migrate() error {
return nil
}
func (d *Db) BeginTx(ctx context.Context, opts *sql.TxOptions) (*Tx, error) {
tx, err := d.DB.BeginTx(ctx, opts)
if err != nil {
return nil, err
}
return &Tx{tx}, nil
}