add new NewDb function in orm

This commit is contained in:
tiglog 2023-08-22 17:15:55 +08:00
parent 437cd18dc7
commit 37f3df120d
3 changed files with 27 additions and 1 deletions

View File

@ -54,6 +54,29 @@ type ConnectionConfig struct {
DatabaseValidations bool DatabaseValidations bool
} }
type DbOption struct {
Type string
Dsn string
MaxIdle int
MaxOpen int
}
func NewDb(opt DbOption) (*sql.DB, error) {
db, err := sql.Open(opt.Type, opt.Dsn)
if err != nil {
return nil, err
}
if opt.Type == "sqlite3" {
if opt.Dsn == ":memory:" {
db.SetMaxOpenConns(1)
}
} else {
db.SetMaxIdleConns(opt.MaxIdle)
db.SetMaxOpenConns(opt.MaxOpen)
}
return db, nil
}
// SetupConnections declares a new connections for ORM. // SetupConnections declares a new connections for ORM.
func SetupConnections(configs ...ConnectionConfig) error { func SetupConnections(configs ...ConnectionConfig) error {

3
go.mod
View File

@ -3,6 +3,7 @@ module git.hexq.cn/tiglog/golib
go 1.20 go 1.20
require ( require (
github.com/DATA-DOG/go-sqlmock v1.5.0
github.com/casbin/casbin/v2 v2.70.0 github.com/casbin/casbin/v2 v2.70.0
github.com/gin-gonic/gin v1.9.1 github.com/gin-gonic/gin v1.9.1
github.com/go-redis/redis/v8 v8.11.5 github.com/go-redis/redis/v8 v8.11.5
@ -19,6 +20,7 @@ require (
go.mongodb.org/mongo-driver v1.11.7 go.mongodb.org/mongo-driver v1.11.7
go.uber.org/zap v1.25.0 go.uber.org/zap v1.25.0
golang.org/x/crypto v0.10.0 golang.org/x/crypto v0.10.0
golang.org/x/sys v0.9.0
gopkg.in/natefinch/lumberjack.v2 v2.2.1 gopkg.in/natefinch/lumberjack.v2 v2.2.1
gopkg.in/yaml.v3 v3.0.1 gopkg.in/yaml.v3 v3.0.1
) )
@ -65,7 +67,6 @@ require (
golang.org/x/arch v0.3.0 // indirect golang.org/x/arch v0.3.0 // indirect
golang.org/x/net v0.10.0 // indirect golang.org/x/net v0.10.0 // indirect
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
golang.org/x/sys v0.9.0 // indirect
golang.org/x/text v0.10.0 // indirect golang.org/x/text v0.10.0 // indirect
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 // indirect
google.golang.org/protobuf v1.30.0 // indirect google.golang.org/protobuf v1.30.0 // indirect

2
go.sum
View File

@ -1,4 +1,6 @@
git.sr.ht/~nelsam/hel v0.4.3 h1:9W0zz8zv8CZhFsp8r9Wq6c8gFemBdtMurjZU/JKfvfM= git.sr.ht/~nelsam/hel v0.4.3 h1:9W0zz8zv8CZhFsp8r9Wq6c8gFemBdtMurjZU/JKfvfM=
github.com/DATA-DOG/go-sqlmock v1.5.0 h1:Shsta01QNfFxHCfpW6YH2STWB0MudeXXEWMr20OEh60=
github.com/DATA-DOG/go-sqlmock v1.5.0/go.mod h1:f/Ixk793poVmq4qj/V1dPUg2JEAKC73Q5eFN3EC/SaM=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible h1:1G1pk05UrOh0NlF1oeaaix1x8XzrfjIDK47TY0Zehcw=
github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0= github.com/Knetic/govaluate v3.0.1-0.20171022003610-9aa49832a739+incompatible/go.mod h1:r7JcOSlj0wfOMncg0iLm8Leh48TZaKVeNIfJntJ2wa0=
github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A= github.com/benbjohnson/clock v1.3.0 h1:ip6w0uFQkncKQ979AypyG0ER7mqUSBdKLOgAle/AT8A=