database 新增 new,MigrateTables
This commit is contained in:
parent
cef8b55fba
commit
bc2cb53287
|
@ -0,0 +1,88 @@
|
||||||
|
package database
|
||||||
|
|
||||||
|
import (
|
||||||
|
"git.apinb.com/bsm-sdk/core/database/sql"
|
||||||
|
"git.apinb.com/bsm-sdk/core/types"
|
||||||
|
"git.apinb.com/bsm-sdk/core/vars"
|
||||||
|
"gorm.io/driver/mysql"
|
||||||
|
"gorm.io/gorm"
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
MigrateTables []any
|
||||||
|
)
|
||||||
|
|
||||||
|
// NewMysql 创建MySQL数据库服务
|
||||||
|
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,
|
||||||
|
MaxOpenConns: vars.SqlOptionMaxIdleConns,
|
||||||
|
ConnMaxLifetime: vars.SqlOptionConnMaxLifetime,
|
||||||
|
LogStdout: false,
|
||||||
|
Debug: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gormDb, err = gorm.Open(mysql.Open(dsn[0]), &gorm.Config{
|
||||||
|
SkipDefaultTransaction: true,
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if options.Debug {
|
||||||
|
gormDb = gormDb.Debug()
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取通用数据库对象 sql.DB ,然后使用其提供的功能
|
||||||
|
sqlDB, _ := gormDb.DB()
|
||||||
|
// SetMaxIdleConns 用于设置连接池中空闲连接的最大数量。
|
||||||
|
sqlDB.SetMaxIdleConns(options.MaxIdleConns)
|
||||||
|
// SetMaxOpenConns 设置打开数据库连接的最大数量。
|
||||||
|
sqlDB.SetMaxOpenConns(options.MaxOpenConns)
|
||||||
|
// SetConnMaxLifetime 设置了连接可复用的最大时间。
|
||||||
|
sqlDB.SetConnMaxLifetime(options.ConnMaxLifetime)
|
||||||
|
|
||||||
|
if len(MigrateTables) > 0 {
|
||||||
|
err = gormDb.AutoMigrate(MigrateTables...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return gormDb, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewPostgres 创建PostgreSQL数据库服务
|
||||||
|
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,
|
||||||
|
MaxOpenConns: vars.SqlOptionMaxIdleConns,
|
||||||
|
ConnMaxLifetime: vars.SqlOptionConnMaxLifetime,
|
||||||
|
LogStdout: false,
|
||||||
|
Debug: true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gormDb, err = sql.NewPostgreSql(dsn[0], options)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
|
if options.Debug {
|
||||||
|
gormDb = gormDb.Debug()
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(MigrateTables) > 0 {
|
||||||
|
err = gormDb.AutoMigrate(MigrateTables...)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
Loading…
Reference in New Issue