Documentation
¶
Index ¶
- Constants
- Variables
- type Config
- type ConfigDatasource
- type ContextKey
- type Datasource
- type Dialect
- type Registry
- func (registry *Registry) AddConnection(ctx context.Context, name string, provider string, dsn string) error
- func (registry *Registry) GetDefault() Datasource
- func (registry *Registry) GetNamed(name string) Datasource
- func (registry *Registry) LoadFromConfig(ctx context.Context, config *Config) error
- type SqlDatasource
- type SqlExecutor
- type TransactionController
- type TransactionStarter
- type UnitOfWork
Constants ¶
View Source
const DefaultDatasource = "default"
Variables ¶
View Source
var ( ErrUnknownProvider = errors.New("unknown provider") ErrUnableToDetermineDialect = errors.New("unable to determine dialect") )
View Source
var ( ErrNoTransaction = errors.New("no transaction in progress") ErrTransactionAlreadyStarted = errors.New("transaction already started") ErrTransactionBeginFailed = errors.New("transaction begin failed") ErrTransactionCommitFailed = errors.New("transaction commit failed") ErrTransactionRollbackFailed = errors.New("transaction rollback failed") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Sources map[string]ConfigDatasource `conf:"SOURCES"`
}
type ConfigDatasource ¶ added in v0.6.7
type Datasource ¶ added in v0.6.9
type Datasource interface {
GetDialect() Dialect
GetConnection() SqlExecutor
ExecuteUnitOfWork(ctx context.Context, fn func(uow *UnitOfWork) error) error
}
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
func NewRegistry ¶
func (*Registry) AddConnection ¶
func (*Registry) GetDefault ¶ added in v0.6.9
func (registry *Registry) GetDefault() Datasource
func (*Registry) GetNamed ¶ added in v0.6.9
func (registry *Registry) GetNamed(name string) Datasource
type SqlDatasource ¶ added in v0.6.7
type SqlDatasource struct {
// contains filtered or unexported fields
}
func NewSqlDatasource ¶ added in v0.6.9
func (*SqlDatasource) ExecuteUnitOfWork ¶ added in v0.6.21
func (datasource *SqlDatasource) ExecuteUnitOfWork(ctx context.Context, fn func(uow *UnitOfWork) error) error
func (*SqlDatasource) GetConnection ¶ added in v0.6.7
func (datasource *SqlDatasource) GetConnection() SqlExecutor
func (*SqlDatasource) GetDialect ¶ added in v0.6.7
func (datasource *SqlDatasource) GetDialect() Dialect
type SqlExecutor ¶
type SqlExecutor interface {
ExecContext(ctx context.Context, query string, args ...any) (sql.Result, error)
PrepareContext(ctx context.Context, query string) (*sql.Stmt, error)
QueryContext(ctx context.Context, query string, args ...any) (*sql.Rows, error)
QueryRowContext(ctx context.Context, query string, args ...any) *sql.Row
}
type TransactionController ¶ added in v0.6.21
type TransactionStarter ¶
type UnitOfWork ¶
type UnitOfWork struct {
Context context.Context //nolint:containedctx
TransactionStarter TransactionStarter
TransactionController TransactionController
}
func CurrentUnitOfWork ¶ added in v0.6.21
func CurrentUnitOfWork(ctx context.Context) *UnitOfWork
func NewUnitOfWork ¶ added in v0.6.18
func NewUnitOfWork(transactionStarter TransactionStarter) *UnitOfWork
func (*UnitOfWork) Commit ¶
func (uow *UnitOfWork) Commit() error
func (*UnitOfWork) Execute ¶ added in v0.6.21
func (uow *UnitOfWork) Execute(ctx context.Context, fn func(uow *UnitOfWork) error) error
func (*UnitOfWork) Rollback ¶ added in v0.6.21
func (uow *UnitOfWork) Rollback() error
Click to show internal directories.
Click to hide internal directories.