ai update.
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user