pg¶
import "github.com/Mini-Vending/go-services/packages/pg"
Index¶
- type Config
- func (p *Config) URL() string
- type Connection
- func NewConnection(ctx context.Context, cfg *Config, logger logger.Logger) (*Connection, error)
- func NewConnectionFromURL(ctx context.Context, databaseURL string, logger logger.Logger) (*Connection, error)
- func (c *Connection) Close() error
- func (c *Connection) DB() *sqlx.DB
- func (c *Connection) Health(ctx context.Context) error
- func (c *Connection) Stats() sql.DBStats
- type Manager
- func NewMigrateManager(ctx context.Context, cfg *Config, migrationsPath string, logger log.Logger) (*Manager, error)
- func (m *Manager) Close(ctx context.Context) error
- func (m *Manager) DB() *Connection
- func (m *Manager) Migrator() *Migrator
- func (m *Manager) RollbackMigrations() error
- func (m *Manager) RunCommand(ctx context.Context, action *string) error
- func (m *Manager) RunMigrations() error
- type Migrator
- func NewMigrator(db *sqlx.DB, migrationsPath string, schemaName string, logger log.Logger) (*Migrator, error)
- func (m *Migrator) Close() error
- func (m *Migrator) Down() error
- func (m *Migrator) Up() error
- func (m *Migrator) Version() (version uint, dirty bool, err error)
- type Query
- func NewQuery(conn *Connection) *Query
- func (q *Query) BeginTx(ctx context.Context, opts *sql.TxOptions) (Transaction, error)
- func (q *Query) CompleteTransaction(transaction Transaction, err error) error
- func (q *Query) Get(ctx context.Context, dest interface{}, query string, transaction Transaction, args ...interface{}) error
- func (q *Query) NamedExec(ctx context.Context, query string, transaction Transaction, arg interface{}) (sql.Result, error)
- func (q *Query) NamedQuery(ctx context.Context, query string, transaction Transaction, arg interface{}) (*sqlx.Rows, error)
- func (q *Query) Select(ctx context.Context, dest interface{}, query string, transaction Transaction, args ...interface{}) error
- type Transaction
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