package sqlite3 import ( "sync" "gorm.io/driver/sqlite" "gorm.io/gorm" ) var db *gorm.DB var OnceInitGormDB sync.Once func InitGormDB() { var err error db, err = gorm.Open(sqlite.Open("data.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") } } func GetGormDB() *gorm.DB { if db == nil { OnceInitGormDB.Do(InitGormDB) } return db } // AutoMigrate 使用GORM的自动迁移功能 func AutoMigrate(models ...interface{}) error { return GetGormDB().AutoMigrate(models...) } // GetGormTx 获取GORM事务 func GetGormTx() *gorm.DB { return GetGormDB().Begin() } // CloseDB 关闭数据库连接 func CloseDB() { if sqlDB, err := GetGormDB().DB(); err == nil { sqlDB.Close() } }