dbx

package
v0.21.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2022 License: AGPL-3.0 Imports: 20 Imported by: 43

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoChanges = stdErrors.New("nothing to migrate.")

ErrNoChanges means that the migration process didn't change execute any file

Functions

func Connection added in v0.18.1

func Connection() *sql.DB

func Migrate added in v0.18.1

func Migrate(ctx context.Context, path string) error

Migrate the database to latest version

func Ping added in v0.18.1

func Ping() error

Ping checks if current database connection is healthy

func Seed added in v0.18.1

func Seed()

Seed clean and insert new seed data for testing

func TryLock added in v0.20.0

func TryLock(ctx context.Context, trx *Trx, key string) (bool, func())

Try to obtain an advisory lock returns true and an unlock function if lock was aquired

Types

type FieldInfo added in v0.9.0

type FieldInfo struct {
	FieldName  []string
	ColumnName string
}

FieldInfo is a simple struct to map Column -> Field

type NullInt

type NullInt struct {
	sql.NullInt64
}

NullInt representa a nullable integer

func (NullInt) MarshalJSON

func (r NullInt) MarshalJSON() ([]byte, error)

MarshalJSON interface redefinition

type NullString

type NullString struct {
	sql.NullString
}

NullString representa a nullable string

func (NullString) MarshalJSON

func (r NullString) MarshalJSON() ([]byte, error)

MarshalJSON interface redefinition

type NullTime

type NullTime struct {
	sql.NullTime
}

NullTime representa a nullable time.Time

func (NullTime) MarshalJSON

func (r NullTime) MarshalJSON() ([]byte, error)

MarshalJSON interface redefinition

type RowMapper added in v0.9.0

type RowMapper struct {
	sync.RWMutex
	// contains filtered or unexported fields
}

RowMapper is responsible for mapping a sql.Rows into a Struct (model)

func NewRowMapper added in v0.9.0

func NewRowMapper() *RowMapper

NewRowMapper creates a new instance of RowMapper

func (*RowMapper) Map added in v0.9.0

func (m *RowMapper) Map(dest any, columns []string, scanner func(dest ...any) error) error

Map values from scanner (usually sql.Rows.Scan) into dest based on columns

type Trx

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

Trx represents a Database transaction

func BeginTx added in v0.18.1

func BeginTx(ctx context.Context) (*Trx, error)

BeginTx returns a new SQL transaction

func (*Trx) Commit

func (trx *Trx) Commit() error

Commit current transaction

func (*Trx) Count

func (trx *Trx) Count(command string, args ...any) (int, error)

Count returns number of rows

func (*Trx) Execute

func (trx *Trx) Execute(command string, args ...any) (int64, error)

Execute given SQL command

func (*Trx) Exists

func (trx *Trx) Exists(command string, args ...any) (bool, error)

Exists returns true if at least one record is found

func (*Trx) Get

func (trx *Trx) Get(data any, command string, args ...any) error

Get first row and bind to given data

func (*Trx) MustCommit added in v0.18.1

func (trx *Trx) MustCommit()

MustCommit current transaction

func (*Trx) MustRollback added in v0.18.1

func (trx *Trx) MustRollback()

MustRollback current transaction

func (*Trx) Query

func (trx *Trx) Query(command string, args ...any) (*sql.Rows, error)

Query all matched rows and return raw sql.Rows

func (*Trx) Rollback

func (trx *Trx) Rollback() error

Rollback current transaction

func (*Trx) Scalar added in v0.4.0

func (trx *Trx) Scalar(data any, command string, args ...any) error

Scalar returns first row and first column

func (*Trx) Select

func (trx *Trx) Select(data any, command string, args ...any) error

Select all matched rows bind to given data

type TypeMapper added in v0.9.0

type TypeMapper struct {
	Type   reflect.Type
	Fields map[string]FieldInfo
}

TypeMapper holds information about how to map SQL ResultSet to a Struct

func NewTypeMapper added in v0.9.0

func NewTypeMapper(t reflect.Type) TypeMapper

NewTypeMapper creates a new instance of TypeMapper for given reflect.Type

Jump to

Keyboard shortcuts

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