Skip to content

pg

import "github.com/Mini-Vending/go-services/packages/pg"

Index

type Config

type Config struct {
    Host            string
    Database        string
    Username        string
    Password        string
    SSLMode         string
    SchemaName      string
    Port            int
    MaxOpenConns    int
    MaxIdleConns    int
    ConnMaxLifetime time.Duration
    ConnMaxIdleTime time.Duration
}

func (*Config) URL

func (p *Config) URL() string

type Connection

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

func NewConnection

func NewConnection(ctx context.Context, cfg *Config, logger logger.Logger) (*Connection, error)

func NewConnectionFromURL

func NewConnectionFromURL(ctx context.Context, databaseURL string, logger logger.Logger) (*Connection, error)

func (*Connection) Close

func (c *Connection) Close() error

func (*Connection) DB

func (c *Connection) DB() *sqlx.DB

func (*Connection) Health

func (c *Connection) Health(ctx context.Context) error

func (*Connection) Stats

func (c *Connection) Stats() sql.DBStats

type Manager

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

func NewMigrateManager

func NewMigrateManager(ctx context.Context, cfg *Config, migrationsPath string, logger log.Logger) (*Manager, error)

func (*Manager) Close

func (m *Manager) Close(ctx context.Context) error

func (*Manager) DB

func (m *Manager) DB() *Connection

func (*Manager) Migrator

func (m *Manager) Migrator() *Migrator

func (*Manager) RollbackMigrations

func (m *Manager) RollbackMigrations() error

func (*Manager) RunCommand

func (m *Manager) RunCommand(ctx context.Context, action *string) error

func (*Manager) RunMigrations

func (m *Manager) RunMigrations() error

type Migrator

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

func NewMigrator

func NewMigrator(db *sqlx.DB, migrationsPath string, schemaName string, logger log.Logger) (*Migrator, error)

func (*Migrator) Close

func (m *Migrator) Close() error

func (*Migrator) Down

func (m *Migrator) Down() error

func (*Migrator) Up

func (m *Migrator) Up() error

func (*Migrator) Version

func (m *Migrator) Version() (version uint, dirty bool, err error)

type Query

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

func NewQuery

func NewQuery(conn *Connection) *Query

TODO refactor

func (*Query) BeginTx

func (q *Query) BeginTx(ctx context.Context, opts *sql.TxOptions) (Transaction, error)

BeginTx uses sqlx BeginTxx

func (*Query) CompleteTransaction

func (q *Query) CompleteTransaction(transaction Transaction, err error) error

func (*Query) Get

func (q *Query) Get(ctx context.Context, dest interface{}, query string, transaction Transaction, args ...interface{}) error

Get uses sqlx GetContext

func (*Query) NamedExec

func (q *Query) NamedExec(ctx context.Context, query string, transaction Transaction, arg interface{}) (sql.Result, error)

NamedExec uses sqlx NamedExecContext

func (*Query) NamedQuery

func (q *Query) NamedQuery(ctx context.Context, query string, transaction Transaction, arg interface{}) (*sqlx.Rows, error)

NamedQuery uses sqlx NamedQueryContext or NamedQuery from transaction

func (*Query) Select

func (q *Query) Select(ctx context.Context, dest interface{}, query string, transaction Transaction, args ...interface{}) error

Select uses sqlx SelectContext

type Transaction

type Transaction interface {
    Commit() error
    Rollback() error
    GetContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
    SelectContext(ctx context.Context, dest interface{}, query string, args ...interface{}) error
    NamedExecContext(ctx context.Context, query string, arg interface{}) (sql.Result, error)
    NamedQuery(query string, arg interface{}) (*sqlx.Rows, error)
}

Generated by gomarkdoc