db

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: Oct 4, 2020 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultMaxOpenConnections    = 25
	DefaultMaxIdleConnections    = 25
	DefaultConnectionMaxLifetime = 5 * time.Minute
	DatabaseDriver               = "pgx"
)
View Source
const (
	SerializationRetryMaxAttempts   = 10
	SerializationRetryStartInterval = time.Millisecond * 2
)

Variables

View Source
var (
	ErrNotFound      = errors.New("not found")
	ErrAlreadyExists = errors.New("already exists")
	ErrSerialization = errors.New("serialization error")
)
View Source
var ErrSchemaNotCompatible = errors.New("db schema version not compatible with latest version")

Functions

func GetLastMigrationAvailable

func GetLastMigrationAvailable() (uint, error)

func IsSerializationError

func IsSerializationError(err error) bool

func IsUniqueViolation

func IsUniqueViolation(err error) bool

func MigrateDown

func MigrateDown(params params.Database) error

func MigrateTo

func MigrateTo(p params.Database, version uint) error

func MigrateUp

func MigrateUp(p params.Database) error

func MigrateVersion

func MigrateVersion(params params.Database) (uint, bool, error)

func Prefix

func Prefix(prefix string) string

func ValidateSchemaUpToDate added in v0.11.0

func ValidateSchemaUpToDate(params params.Database) error

Types

type Database

type Database interface {
	io.Closer
	Tx
	Transact(fn TxFunc, opts ...TxOpt) (interface{}, error)
	Metadata() (map[string]string, error)
	Stats() sql.DBStats
	WithContext(ctx context.Context) Database
}

func BuildDatabaseConnection added in v0.9.0

func BuildDatabaseConnection(dbParams params.Database) Database

BuildDatabaseConnection returns a database connection based on a pool for the configuration in c.

func ConnectDB

func ConnectDB(p params.Database) (Database, error)

type DatabaseMigrator

type DatabaseMigrator struct {
	// contains filtered or unexported fields
}

func NewDatabaseMigrator

func NewDatabaseMigrator(params params.Database) *DatabaseMigrator

func (*DatabaseMigrator) Migrate

func (d *DatabaseMigrator) Migrate(ctx context.Context) error

type Migrator

type Migrator interface {
	Migrate(ctx context.Context) error
}

type QueryOptions added in v0.9.0

type QueryOptions struct {
	// contains filtered or unexported fields
}

type SqlxDatabase

type SqlxDatabase struct {
	// contains filtered or unexported fields
}

func NewSqlxDatabase

func NewSqlxDatabase(db *sqlx.DB) *SqlxDatabase

func (*SqlxDatabase) Close

func (d *SqlxDatabase) Close() error

func (*SqlxDatabase) Exec added in v0.9.0

func (d *SqlxDatabase) Exec(query string, args ...interface{}) (sql.Result, error)

func (*SqlxDatabase) Get added in v0.9.0

func (d *SqlxDatabase) Get(dest interface{}, query string, args ...interface{}) error

func (*SqlxDatabase) Metadata

func (d *SqlxDatabase) Metadata() (map[string]string, error)

func (*SqlxDatabase) Query added in v0.11.0

func (d *SqlxDatabase) Query(query string, args ...interface{}) (rows *sqlx.Rows, err error)

func (*SqlxDatabase) Select added in v0.11.0

func (d *SqlxDatabase) Select(dest interface{}, query string, args ...interface{}) error

func (*SqlxDatabase) Stats

func (d *SqlxDatabase) Stats() sql.DBStats

func (*SqlxDatabase) Transact

func (d *SqlxDatabase) Transact(fn TxFunc, opts ...TxOpt) (interface{}, error)

func (*SqlxDatabase) WithContext added in v0.9.0

func (d *SqlxDatabase) WithContext(ctx context.Context) Database

type Tx

type Tx interface {
	Query(query string, args ...interface{}) (*sqlx.Rows, error)
	Select(dest interface{}, query string, args ...interface{}) error
	Get(dest interface{}, query string, args ...interface{}) error
	Exec(query string, args ...interface{}) (sql.Result, error)
}

type TxFunc

type TxFunc func(tx Tx) (interface{}, error)

type TxOpt

type TxOpt func(*TxOptions)

func ReadOnly

func ReadOnly() TxOpt

func WithContext

func WithContext(ctx context.Context) TxOpt

func WithIsolationLevel

func WithIsolationLevel(level sql.IsolationLevel) TxOpt

func WithLogger

func WithLogger(logger logging.Logger) TxOpt

type TxOptions

type TxOptions struct {
	// contains filtered or unexported fields
}

func DefaultTxOptions

func DefaultTxOptions() *TxOptions

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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