pgxutil

Go jackc/pgx helper to write proper transactions.

Features

  • Simple API.

Install

Go version 1.17+

go get github.com/cristalhq/pgxutil

Example

// create jackc/pgx pool
var pool *pgxpool.Pool

db, err := pgxutil.New(pool)
if err != nil {
	panic(err)
}

ctx := context.Background()

// to make transaction with a given isolation level
level := pgx.Serializable
errTx := db.InTx(ctx, level, func(tx pgx.Tx) error {
	// TODO: good query with tx
	return nil
})
if errTx != nil {
	panic(errTx)
}

// to make read-only transaction with a read committed isolation level
errRead := db.InReadOnlyTx(ctx, func(tx pgx.Tx) error {
	// TODO: good read-only query with tx
	return nil
})
if errRead != nil {
	panic(errRead)
}	

Also see examples: examples_test.go.

Documentation

See these docs.

License

MIT License.

GitHub

View Github