ai update.

This commit is contained in:
2025-10-03 19:55:20 +08:00
parent 0401a39a94
commit 464617626b
15 changed files with 374 additions and 378 deletions

View File

@@ -1,4 +1,5 @@
// Package database provides database connection and management functionality
// Package database 提供数据库连接和管理功能
// 支持MySQL和PostgreSQL数据库包含连接池管理和自动迁移
package database
import (
@@ -13,12 +14,16 @@ import (
)
var (
// MigrateTables holds the tables that need to be auto-migrated on database initialization
// MigrateTables 存储需要在数据库初始化时自动迁移的表
MigrateTables []any
)
// NewDatabase creates a new database connection based on the provided driver type
// It supports both MySQL and PostgreSQL databases
// NewDatabase 根据提供的驱动类型创建新的数据库连接
// 支持MySQL和PostgreSQL数据库
// driver: 数据库驱动类型 ("mysql" 或 "postgres")
// dsn: 数据源名称数组
// options: 数据库连接选项
// 返回: GORM数据库实例
func NewDatabase(driver string, dsn []string, options *types.SqlOptions) (db *gorm.DB, err error) {
driver = strings.ToLower(driver)
switch driver {
@@ -34,7 +39,7 @@ func NewDatabase(driver string, dsn []string, options *types.SqlOptions) (db *go
return nil, err
}
// auto migrate table.
// 自动迁移表结构
if len(MigrateTables) > 0 {
err = db.AutoMigrate(MigrateTables...)
if err != nil {
@@ -45,9 +50,12 @@ func NewDatabase(driver string, dsn []string, options *types.SqlOptions) (db *go
return db, nil
}
// NewMysql creates a MySQL database service
// NewMysql 创建MySQL数据库服务
// dsn: 数据源名称数组
// options: 数据库连接选项
// 返回: GORM数据库实例
func NewMysql(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err error) {
//set connection default val.
// 设置连接默认值
if options == nil {
options = &types.SqlOptions{
MaxIdleConns: vars.SqlOptionMaxIdleConns,
@@ -69,25 +77,28 @@ func NewMysql(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err err
gormDb = gormDb.Debug()
}
// 获取通用数据库对象 sql.DB ,然后使用其提供的功能
// 获取通用数据库对象 sql.DB然后使用其提供的功能
sqlDB, err := gormDb.DB()
if err != nil {
return nil, err
}
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量
sqlDB.SetMaxIdleConns(options.MaxIdleConns)
// SetMaxOpenConns 设置打开数据库连接的最大数量
// SetMaxOpenConns 设置打开数据库连接的最大数量
sqlDB.SetMaxOpenConns(options.MaxOpenConns)
// SetConnMaxLifetime 设置了连接可复用的最大时间
// SetConnMaxLifetime 设置了连接可复用的最大时间
sqlDB.SetConnMaxLifetime(options.ConnMaxLifetime)
return gormDb, nil
}
// NewPostgres creates a PostgreSQL database service
// NewPostgres 创建PostgreSQL数据库服务
// dsn: 数据源名称数组
// options: 数据库连接选项
// 返回: GORM数据库实例
func NewPostgres(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err error) {
//set connection default val.
// 设置连接默认值
if options == nil {
options = &types.SqlOptions{
MaxIdleConns: vars.SqlOptionMaxIdleConns,
@@ -107,18 +118,18 @@ func NewPostgres(dsn []string, options *types.SqlOptions) (gormDb *gorm.DB, err
gormDb = gormDb.Debug()
}
// 获取通用数据库对象 sql.DB ,然后使用其提供的功能
// 获取通用数据库对象 sql.DB然后使用其提供的功能
sqlDB, err := gormDb.DB()
if err != nil {
return nil, err
}
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量
sqlDB.SetMaxIdleConns(options.MaxIdleConns)
// SetMaxOpenConns 设置打开数据库连接的最大数量
// SetMaxOpenConns 设置打开数据库连接的最大数量
sqlDB.SetMaxOpenConns(options.MaxOpenConns)
// SetConnMaxLifetime 设置了连接可复用的最大时间
// SetConnMaxLifetime 设置了连接可复用的最大时间
sqlDB.SetConnMaxLifetime(options.ConnMaxLifetime)
return
return gormDb, nil
}