xdb

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: May 11, 2024 License: MIT Imports: 19 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func FileWithLineNum

func FileWithLineNum() string

FileWithLineNum 获取调用堆栈信息

func MustNewDB

func MustNewDB(c Config) *gorm.DB

MustNewDB 新建 gorm.DB 对象

func MustNewDBMock

func MustNewDBMock(c Config) (*gorm.DB, sqlmock.Sqlmock)

MustNewDBMock 新建 gorm.DB 和 sqlmock.Sqlmock 对象

func NewDB

func NewDB(c Config) (*gorm.DB, error)

NewDB 新建 gorm.DB 对象

func NewDBMock

func NewDBMock(c Config) (*gorm.DB, sqlmock.Sqlmock, error)

NewDBMock 新建 gorm.DB 和 sqlmock.Sqlmock 对象

Types

type Config

type Config struct {
	Type            Type          `json:",default=mysql,options=[mysql,postgres,sqlite,sqlserver]"` // 数据库类型(枚举 mysql、postgres、sqlite 和 sqlserver)
	Host            string        `json:",optional"`                                                // 地址
	Port            int           `json:",optional"`                                                // 端口
	User            string        `json:",optional"`                                                // 用户
	Password        string        `json:",optional"`                                                // 密码
	Database        string        // 数据库(数据库类型为 sqlite 时,为 db 文件地址)
	Params          string        `json:",optional"`                                      // 额外 DSN 参数
	NeedCreate      bool          `json:",optional"`                                      // 是否需要创建数据库
	MaxIdleConns    int           `json:",default=10"`                                    // 最大空闲连接数
	MaxOpenConns    int           `json:",default=50"`                                    // 最大打开连接数
	ConnMaxLifeTime time.Duration `json:",default=1h"`                                    // 连接最大生存时间
	ConnMaxIdleTime time.Duration `json:",default=1h"`                                    // 连接最大空闲时间
	LogLevel        LogLevel      `json:",default=info,options=[info,warn,error,silent]"` // 日志级别(枚举 info、warn、error 和 silent)
	SlowThreshold   time.Duration `json:",default=200ms"`                                 // 慢查询阈值
}

Config 数据库配置

func (Config) GetGORMConfig

func (c Config) GetGORMConfig() *gorm.Config

GetGORMConfig 获取 GORM 配置

func (Config) GetMySQLConfig

func (c Config) GetMySQLConfig(needDatabase ...bool) mysql.Config

GetMySQLConfig 获取 GORM MySQL 配置

func (Config) GetPostgreSQLConfig

func (c Config) GetPostgreSQLConfig(needDatabase ...bool) postgres.Config

GetPostgreSQLConfig 获取 GORM PostgreSQL 配置

func (Config) GetSQLServerConfig

func (c Config) GetSQLServerConfig(needDatabase ...bool) sqlserver.Config

GetSQLServerConfig 获取 GORM SQLServer 配置

func (Config) GetSQLiteDSN

func (c Config) GetSQLiteDSN() string

GetSQLiteDSN 获取 GORM SQLite DSN 配置

type LogLevel

type LogLevel string

LogLevel 日志级别

const (
	// Info 日志级别:info
	Info LogLevel = "info"
	// Warn 日志级别:warn
	Warn LogLevel = "warn"
	// Error 日志级别:error
	Error LogLevel = "error"
	// Silent 日志级别:silent
	Silent LogLevel = "silent"
)

func (LogLevel) ToGROMLogLevel

func (l LogLevel) ToGROMLogLevel() (logLevel logger.LogLevel)

ToGROMLogLevel 转化日志级别

type Logger

type Logger struct {
	LogLevel      logger.LogLevel
	SlowThreshold time.Duration
}

Logger 日志记录器

func NewLogger

func NewLogger(logLevel logger.LogLevel, slowThreshold time.Duration) *Logger

NewLogger 新建日志记录器

func (*Logger) Error

func (l *Logger) Error(ctx context.Context, msg string, data ...any)

Error 日志记录 error

func (*Logger) Info

func (l *Logger) Info(ctx context.Context, msg string, data ...any)

Info 日志记录 info

func (*Logger) LogMode

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

LogMode 设置日志记录模式

func (*Logger) Trace

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

Trace 日志记录 trace

func (*Logger) Warn

func (l *Logger) Warn(ctx context.Context, msg string, data ...any)

Warn 日志记录 warn

type Type

type Type string

Type 数据库类型

const (
	// MySQL 数据库类型:mysql
	MySQL Type = "mysql"
	// PostgreSQL 数据库类型:postgres
	PostgreSQL Type = "postgres"
	// SQLite 数据库类型:sqlite
	SQLite Type = "sqlite"
	// SQLServer 数据库类型:sqlserver
	SQLServer Type = "sqlserver"
)

func (Type) CheckDB

func (t Type) CheckDB(db *gorm.DB) error

CheckDB 检查数据库状态

func (Type) CreateDB

func (t Type) CreateDB(db *gorm.DB, database string) error

CreateDB 创建数据库

func (Type) GetCheckSQL

func (t Type) GetCheckSQL() (checkSQL string)

GetCheckSQL 获取检查数据库状态 SQL 语句

func (Type) GetCreateSQL

func (t Type) GetCreateSQL(database string) (createSQL string)

GetCreateSQL 获取创建数据库 SQL 语句

func (Type) GetVersionSQL

func (t Type) GetVersionSQL() (versionSQL string)

GetVersionSQL 获取查询数据库版本 SQL 语句

func (Type) VersionDB

func (t Type) VersionDB(db *gorm.DB) (string, error)

VersionDB 查询数据库版本

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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