pg

package
v0.0.0-...-1f9e35f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 29, 2022 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

Package pg provides support for access to a postgres database.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDBNotFound        = errors.New("not found")
	ErrDBDuplicatedEntry = errors.New("duplicated entry")
)

Set of error variables for CRUD operations.

Functions

func NamedExecContext

func NamedExecContext(ctx context.Context, log *zap.SugaredLogger, db sqlx.ExtContext, query string, data any) error

NamedExecContext is a helper function to execute a CUD operation with logging and tracing.

func NamedQuerySlice

func NamedQuerySlice[T any](ctx context.Context, log *zap.SugaredLogger, db sqlx.ExtContext, query string, data any, dest *[]T) error

NamedQuerySlice is a helper function for executing queries that return a collection of data to be unmarshalled into a slice.

func NamedQueryStruct

func NamedQueryStruct(ctx context.Context, log *zap.SugaredLogger, db sqlx.ExtContext, query string, data any, dest any) error

NamedQueryStruct is a helper function for executing queries that return a single value to be unmarshalled into a struct type.

func Open

func Open(cfg Config) (*sqlx.DB, error)

Open knows how to open a database connection based on the configuration.

func StatusCheck

func StatusCheck(ctx context.Context, db *sqlx.DB) error

StatusCheck returns nil if it can successfully talk to the database. It returns a non-nil error otherwise.

func WithinTran

func WithinTran(ctx context.Context, log *zap.SugaredLogger, db Transactor, fn func(sqlx.ExtContext) error) error

WithinTran runs passed function and do commit/rollback at the end.

Types

type Config

type Config struct {
	User         string
	Password     string
	Host         string
	Name         string
	MaxIdleConns int
	MaxOpenConns int
	DisableTLS   bool
}

Config is the required properties to use the database.

type Transactor

type Transactor interface {
	Beginx() (*sqlx.Tx, error)
}

Transactor interface needed to begin transaction.

Directories

Path Synopsis
Package dbschema contains the database schema, migrations and seeding data.
Package dbschema contains the database schema, migrations and seeding data.
Package dbtest contains supporting code for running tests that hit the DB.
Package dbtest contains supporting code for running tests that hit the DB.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL