database

package
v0.4.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 11, 2025 License: Apache-2.0 Imports: 18 Imported by: 0

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:db",
	fx.Provide(
		fx.Annotate(
			newDb,
			fx.As(new(bun.IDB)),
			fx.As(fx.Self()),
		),
	),
	fx.Invoke(func() {
		logger.Info("Database module initialized")
	}),
)

Functions

func CreateDb

func CreateDb(config *config.DatasourceConfig, options ...Option) (*bun.DB, error)

CreateDb creates a new *bun.DB instance with custom options.

Parameters:

  • config: The datasource configuration containing database connection details
  • options: Variadic list of Option functions to customize the database initialization

Returns:

  • *bun.DB: A configured bun database instance ready for use
  • error: Any error that occurred during database initialization

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.

func (*ConnectionPoolConfig) ApplyToDB

func (c *ConnectionPoolConfig) ApplyToDB(db interface {
	SetMaxIdleConns(int)
	SetMaxOpenConns(int)
	SetConnMaxIdleTime(time.Duration)
	SetConnMaxLifetime(time.Duration)
},
)

ApplyToDB applies the connection pool configuration to a database connection.

type DatabaseError

type DatabaseError struct {
	Type    constants.DbType
	Op      string
	Err     error
	Context map[string]any
}

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 WithBunOptions

func WithBunOptions(bunOpts ...bun.DBOption) Option

WithBunOptions adds additional bun options.

func WithConnectionPool

func WithConnectionPool(poolConfig *ConnectionPoolConfig) Option

WithConnectionPool sets a custom connection pool configuration.

func WithLogger

func WithLogger(logger logPkg.Logger) Option

WithLogger sets a custom logger.

func WithQueryHook

func WithQueryHook(enabled bool) Option

WithQueryHook enables or disables the query hook.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL