package database import ( "fmt" "log" "gorm.io/driver/sqlite" "gorm.io/gorm" "gorm.io/gorm/logger" ) // NewTestDB 创建用于测试的内存数据库 func NewTestDB() *gorm.DB { db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), }) if err != nil { log.Fatalf("无法创建测试数据库: %v", err) } return db } // NewTestDBWithName 创建用于测试的命名内存数据库(支持多连接共享) func NewTestDBWithName(name string) *gorm.DB { dsn := fmt.Sprintf("file:%s?mode=memory&cache=shared", name) db, err := gorm.Open(sqlite.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), }) if err != nil { log.Fatalf("无法创建测试数据库 %s: %v", name, err) } return db }