首页 > 解决方案 > 我如何在 gorm 1.20.0 中关闭数据库实例

问题描述

由于我没有在 *gorm 实例的 Close() 函数中找到,任何帮助将不胜感激

dbURI := fmt.Sprintf("user=%s password=%s dbname=%s port=%s sslmode=%s TimeZone=%s",
    "username", "password", "dbname", "5432", "disable", "Asia/Kolkata")
fmt.Println(dbURI)
connection, err := gorm.Open(postgres.Open(dbURI), &gorm.Config{})

if err != nil {
    fmt.Println("Error connecting database")
    panic(err.Error())
} else {
    fmt.Println("Connected to database")
}

注意:connection.Close() 不适用于 GORM 1.20.0

标签: postgresqlgogo-gormglide-golang

解决方案


Jinzhu 决定Close()在 1.20 版本中取消该方法,因为 GORM 支持连接池,因此正确的用法是打开连接并在应用程序中共享它。

如果您的特定用例仍需要使用该Close()方法,GORM 提供方法 DB,该方法返回一个您可以使用的db generic_interface 。

例如

sqlDB, err := db.DB()

// Close
sqlDB.Close()

推荐阅读