Documentation
¶
Index ¶
Constants ¶
View Source
const ( DefaultMaxIdleConnsMultiplier = 4 DefaultMaxOpenConnsMultiplier = 16 DefaultMinIdleConns = 25 DefaultMinOpenConns = 100 DefaultConnMaxIdleTime = 5 * time.Minute DefaultConnMaxLifetime = 30 * time.Minute )
Default connection pool constants.
Variables ¶
View Source
var (
ErrUnsupportedDBType = errors.New("unsupported database type")
)
Database error types.
View Source
var ( Module = fx.Module( "vef:database", fx.Provide( fx.Annotate( func(lc fx.Lifecycle, config *config.DatasourceConfig) (db *bun.DB, err error) { if db, err = New(config); err != nil { return db, err } provider, exists := registry.provider(config.Type) if !exists { return nil, newUnsupportedDbTypeError(config.Type) } lc.Append( fx.StartStopHook( func(ctx context.Context) error { if err := db.PingContext(ctx); err != nil { return wrapPingError(provider.Type(), err) } if err := logDbVersion(provider, db, logger); err != nil { return err } logger.Infof("Database client started successfully: %s", provider.Type()) return nil }, func() error { logger.Info("Closing database connection...") return db.Close() }, ), ) return db, err }, fx.As(new(bun.IDB)), fx.As(fx.Self()), ), ), ) )
Functions ¶
Types ¶
type ConnectionPoolConfig ¶
type ConnectionPoolConfig struct {
MaxIdleConns int
MaxOpenConns int
ConnMaxIdleTime time.Duration
ConnMaxLifetime time.Duration
}
ConnectionPoolConfig defines the connection pool configuration.
func NewDefaultConnectionPoolConfig ¶
func NewDefaultConnectionPoolConfig() *ConnectionPoolConfig
NewDefaultConnectionPoolConfig creates a default connection pool configuration.
type DatabaseError ¶
DatabaseError represents a database-specific error with additional context.
func (*DatabaseError) Error ¶
func (e *DatabaseError) Error() string
func (*DatabaseError) Unwrap ¶
func (e *DatabaseError) Unwrap() error
type DatabaseProvider ¶
type DatabaseProvider interface {
// Connect establishes a connection to the database
Connect(config *config.DatasourceConfig) (*sql.DB, schema.Dialect, error)
// Type returns the database type identifier
Type() constants.DbType
// ValidateConfig validates the datasource configuration for this provider
ValidateConfig(config *config.DatasourceConfig) error
// QueryVersion queries the database version
QueryVersion(db *bun.DB) (string, error)
}
DatabaseProvider defines the interface for database providers.
type Option ¶
type Option func(*databaseOptions)
Option defines a function type for configuring databaseOptions.
func DisableQueryHook ¶ added in v0.5.4
func DisableQueryHook() Option
DisableQueryHook disables the query hook. By default, query hook is enabled for logging SQL queries.
func WithBunOptions ¶
WithBunOptions adds additional bun options.
func WithConnectionPool ¶
func WithConnectionPool(poolConfig *ConnectionPoolConfig) Option
func WithLogger ¶
Source Files
¶
Click to show internal directories.
Click to hide internal directories.