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 TransactionFinalizer
- type TransactionStarter
- type UnitOfWork
- func (uow *UnitOfWork) Bind(context context.Context, txScope TransactionFinalizer)
- func (uow *UnitOfWork) Close() error
- func (uow *UnitOfWork) Commit() error
- func (uow *UnitOfWork) Context() context.Context
- func (uow *UnitOfWork) TxScope() TransactionFinalizer
- func (uow *UnitOfWork) Use(fn func(TransactionFinalizer) any)
Constants ¶
View Source
const DefaultDatasource = "default"
Variables ¶
View Source
var ( ErrUnknownProvider = errors.New("unknown provider") ErrUnableToDetermineDialect = errors.New("unable to determine dialect") )
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
UseUnitOfWork(ctx context.Context) (*UnitOfWork, 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) GetConnection ¶ added in v0.6.7
func (dataSource *SqlDatasource) GetConnection() SqlExecutor
func (*SqlDatasource) GetDialect ¶ added in v0.6.7
func (dataSource *SqlDatasource) GetDialect() Dialect
func (*SqlDatasource) UseUnitOfWork ¶ added in v0.6.7
func (dataSource *SqlDatasource) UseUnitOfWork(ctx context.Context) (*UnitOfWork, error)
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 TransactionFinalizer ¶
type TransactionStarter ¶
type UnitOfWork ¶
type UnitOfWork struct {
// contains filtered or unexported fields
}
func UseUnitOfWork ¶
func UseUnitOfWork(ctx context.Context, transactionStarter TransactionStarter) (*UnitOfWork, error)
func (*UnitOfWork) Bind ¶
func (uow *UnitOfWork) Bind(context context.Context, txScope TransactionFinalizer)
func (*UnitOfWork) Close ¶
func (uow *UnitOfWork) Close() error
func (*UnitOfWork) Commit ¶
func (uow *UnitOfWork) Commit() error
func (*UnitOfWork) Context ¶
func (uow *UnitOfWork) Context() context.Context
func (*UnitOfWork) TxScope ¶
func (uow *UnitOfWork) TxScope() TransactionFinalizer
func (*UnitOfWork) Use ¶
func (uow *UnitOfWork) Use(fn func(TransactionFinalizer) any)
Click to show internal directories.
Click to hide internal directories.