database

package
v0.0.0-...-b7d407f Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: GPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloseAll

func CloseAll() error

CloseAll closes all database connections

func ErrDriverNotFound

func ErrDriverNotFound(driver string) error

func ErrNoDatabaseConnection

func ErrNoDatabaseConnection() error

func ErrSessionNotFound

func ErrSessionNotFound(name string) error

func GetAllSessions

func GetAllSessions() map[string]*Session

GetAllSessions returns all active sessions

func GetConnectionStats

func GetConnectionStats() map[string]interface{}

GetConnectionStats returns connection statistics

func GetDB

func GetDB(name string) (*bun.DB, error)

GetDB returns bun.DB instance by name

func GetRedisClient

func GetRedisClient() *redis.Client

GetRedisClient returns Redis client instance

func HealthCheck

func HealthCheck(ctx context.Context) map[string]error

HealthCheck performs health check on all connections

func Init

func Init(configs ...Config) error

Init initializes database connections

func InitRedis

func InitRedis(cfg RedisConfig) error

InitRedis initializes Redis connection

func RegisterDriver

func RegisterDriver(name string, driver DatabaseDriver)

RegisterDriver registers a database driver

func WithTransaction

func WithTransaction(ctx context.Context, sessionName string, fn func(tx bun.Tx) error) error

WithTransaction executes function within database transaction

Types

type Config

type Config struct {
	Name            string
	Dsn             string
	Driver          string
	MaxOpenConns    int
	MaxIdleConns    int
	ConnMaxLifetime time.Duration
	ConnMaxIdleTime time.Duration
	Debug           bool
}

Config represents database configuration

type ConnectionManager

type ConnectionManager struct {
	// contains filtered or unexported fields
}

ConnectionManager manages all database connections

var (
	Manager     *ConnectionManager
	RedisClient *redis.Client
)

Global instances

type DatabaseDriver

type DatabaseDriver interface {
	Open(dsn string) (*sql.DB, error)
	CreateBunDB(sqlDB *sql.DB) *bun.DB
	GetDriverName() string
}

DatabaseDriver interface for dynamic driver loading

type DatabaseError

type DatabaseError struct {
	Message string
	Err     error
}

Custom errors

func (*DatabaseError) Error

func (e *DatabaseError) Error() string

type RedisConfig

type RedisConfig struct {
	Addr         string
	Password     string
	DB           int
	MaxRetries   int
	PoolSize     int
	MinIdleConns int
	PoolTimeout  time.Duration
	IdleTimeout  time.Duration
}

RedisConfig represents Redis configuration

type Session

type Session struct {
	Name   string
	DB     *bun.DB
	SqlDB  *sql.DB
	Config Config
}

Session holds database connection info

func GetSession

func GetSession(name string) (*Session, bool)

GetSession returns database session by name

func (*Session) Close

func (s *Session) Close() error

Close closes specific database connection

func (*Session) Ping

func (s *Session) Ping(ctx context.Context) error

Ping tests database connectivity

func (*Session) Stats

func (s *Session) Stats() sql.DBStats

Stats returns database statistics

Directories

Path Synopsis
drivers

Jump to

Keyboard shortcuts

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