databases

package
v1.2.9 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2025 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DBLogger

type DBLogger struct {
	LogLevel logger.LogLevel
}

func (*DBLogger) Error

func (l *DBLogger) Error(ctx context.Context, msg string, data ...interface{})

func (*DBLogger) Info

func (l *DBLogger) Info(ctx context.Context, msg string, data ...interface{})

func (*DBLogger) LogMode

func (l *DBLogger) LogMode(level logger.LogLevel) logger.Interface

func (*DBLogger) Trace

func (l *DBLogger) Trace(ctx context.Context, begin time.Time, fc func() (sql string, rowsAffected int64), err error)

func (*DBLogger) Warn

func (l *DBLogger) Warn(ctx context.Context, msg string, data ...interface{})

type DatabaseConfig

type DatabaseConfig struct {
	Hosts    []string
	Port     string
	User     string
	Password string
	Name     string
	LogLevel logger.LogLevel
	Timezone string // 时区,如 Asia/Shanghai

	// 1.0 版本,支持多数据库,同时兼容原有数据库配置
	EnableSlave bool

	Main  *DatabaseConfig
	Slave *DatabaseConfig

	// 连接池配置
	MaxIdleConns    int  // 最大空闲连接数
	MaxOpenConns    int  // 最大打开连接数
	ConnMaxLifetime int  // 连接最大生命周期(分钟)
	ConnMaxIdleTime int  // 空闲连接最大存活时间(分钟)
	PrepareStmt     bool // 是否启用 prepared statement 缓存
}

type LightDatabase

type LightDatabase struct {
	MainDB    *gorm.DB
	SlaveDBs  []*gorm.DB
	Completed bool
	Error     error
}
var LightDatabaseClient *LightDatabase

func (*LightDatabase) CloseConnections

func (l *LightDatabase) CloseConnections()

CloseConnections 提供一个方法用于安全��关闭数据库连接 应仅在确认不再需要使用数据库时调用,例如应用程序关闭时

func (*LightDatabase) GetDB

func (l *LightDatabase) GetDB(ctx context.Context) (*gorm.DB, error)

GetDB 获取主库连接

func (*LightDatabase) GetSlaveDB

func (l *LightDatabase) GetSlaveDB(ctx context.Context) (*gorm.DB, error)

GetSlaveDB 获取从库连接,实现负载均衡

func (*LightDatabase) LogStats

func (l *LightDatabase) LogStats()

LogStats 记录数据库连接池统计信息到日志

func (*LightDatabase) Stats

func (l *LightDatabase) Stats() map[string]interface{}

Stats 返回数据库连接池统计信息

type LogLevel

type LogLevel string
const (
	LogLevelDebug LogLevel = "debug"
	LogLevelInfo  LogLevel = "info"
	LogLevelWarn  LogLevel = "warn"
	LogLevelError LogLevel = "error"
)