Documentation
¶
Index ¶
- Variables
- func ContextWithTransaction(ctx context.Context, tx *sqlx.Tx) context.Context
- func ErrIsForeignKeyViolation(err error) bool
- func ErrIsUniqueViolation(err error) bool
- func NewTransactionContext(ctx context.Context, db BeginTxer, operation TransactionFn) (err error)
- func TransactionFromContext(ctx context.Context) *sqlx.Tx
- func WithTransaction(db BeginTxer, fn func(tx *sqlx.Tx) error) (err error)
- func WithTransactionFromContext(ctx context.Context, operation func(tx *sqlx.Tx) error) error
- type BeginTxer
- type Helper
- type Initializer
- type PostgresOptions
- type TransactionFn
Constants ¶
This section is empty.
Variables ¶
var ErrNoTransaction = errors.New("no transaction in context")
Functions ¶
func ContextWithTransaction ¶ added in v1.1.0
Puts a transaction into a context and returns the new context with the transaction
func ErrIsUniqueViolation ¶
func NewTransactionContext ¶ added in v1.1.0
func NewTransactionContext(ctx context.Context, db BeginTxer, operation TransactionFn) (err error)
Creates a new transaction, puts it into the context and runs the given operation with the context and the transaction.
func TransactionFromContext ¶ added in v1.1.0
Gets the current transaction from the context
func WithTransaction ¶
Ends the given transaction. This method will either commit the transaction if the given recoverValue is nil, or rollback the transaction if it is non nil.
func WithTransactionFromContext ¶ added in v1.1.0
Calls the given operation with the transaction that is currently stored in the context. Will fail with ErrNoTransaction if there is no transaction stored in the context.
Types ¶
type Initializer ¶
func DefaultMigration ¶
func DefaultMigration(table string) Initializer
Creates an Initializer that performs a database migration by looking for sql files in the default directories.
func Migration ¶
func Migration(table, directory string) Initializer
Runs a migration with the sql files from the given directory. The directory must exist. The migration library will use the given table name to store the migration progress
type PostgresOptions ¶
type PostgresOptions struct {
URL string `long:"postgres" default:"postgres://postgres:postgres@localhost:5432?sslmode=disable" description:"Postgres server url."`
PoolSize int `` /* 133-byte string literal not displayed */
ConnectionLifetime time.Duration `long:"postgres-lifetime" default:"10m" description:"Maximum time a connection in the pool can be used."`
Inputs struct {
// the driver name to use. If this is empty,
// we select the default of 'postgres' or 'pgx',
// depending on availability
DriverName string
// An optional initializer. This might be used to do
// database migration or stuff.
Initializer Initializer
}
// contains filtered or unexported fields
}
func (*PostgresOptions) Connection ¶
func (opts *PostgresOptions) Connection() *sqlx.DB