package database import ( "ankao/internal/models" "ankao/pkg/config" "fmt" "log" "gorm.io/driver/postgres" "gorm.io/gorm" "gorm.io/gorm/logger" ) var DB *gorm.DB // InitDB 初始化数据库连接 func InitDB() error { cfg := config.GetDatabaseConfig() dsn := cfg.GetDSN() var err error DB, err = gorm.Open(postgres.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), // 开启SQL日志 }) if err != nil { return fmt.Errorf("failed to connect to database: %w", err) } log.Println("Database connected successfully") // 自动迁移数据库表结构 err = DB.AutoMigrate( &models.User{}, &models.PracticeQuestion{}, ) if err != nil { return fmt.Errorf("failed to migrate database: %w", err) } log.Println("Database migration completed") return nil } // GetDB 获取数据库实例 func GetDB() *gorm.DB { return DB }