package dao import ( "RelationshipManagement-backend/config" "fmt" "gorm.io/driver/mysql" "gorm.io/gorm" "gorm.io/gorm/logger" ) var DB *gorm.DB // InitDB 初始化数据库连接 func InitDB(cfg *config.Config) error { dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", cfg.DB.User, cfg.DB.Password, cfg.DB.Host, cfg.DB.Port, cfg.DB.DBName, ) var err error DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Info), }) if err != nil { return fmt.Errorf("failed to connect database: %w", err) } // 自动迁移(开发环境使用,生产环境建议使用迁移工具) // AutoMigrate() return nil } // AutoMigrate 自动迁移数据库表 func AutoMigrate() error { // 在这里添加需要自动迁移的模型 // return DB.AutoMigrate(&model.User{}) return nil } // CloseDB 关闭数据库连接 func CloseDB() error { sqlDB, err := DB.DB() if err != nil { return err } return sqlDB.Close() }