[FAQ] gormV2 Too many connections
gormV2 中不再有v1的 db.Close() 方法。
取而代之的 close 方式是如下:
sqlDB, err := DB.DB()
sqlDB.Close()
https://github.com/go-gorm/gorm/issues/3145
另外,gormV2 内部维护了连接池,设置连接数量,打开的连接全局使用即可。
http://v2.gorm.io/docs/generic_interface.html
// 获取通用数据库对象 sql.DB ,然后使用其提供的功能 sqlDB, err := db.DB() // SetMaxIdleConns 用于设置连接池中空闲连接的最大数量。 sqlDB.SetMaxIdleConns(10) // SetMaxOpenConns 设置打开数据库连接的最大数量。 sqlDB.SetMaxOpenConns(100) // SetConnMaxLifetime 设置了连接可复用的最大时间。 sqlDB.SetConnMaxLifetime(time.Hour)
https://github.com/go-gorm/gorm/issues/3834