package initialize import ( "fmt" "gin-admin/internal/core/config" "gin-admin/internal/repository" "gorm.io/driver/mysql" "gorm.io/gorm" systemmodel "gin-admin/internal/model/system" ) // @Author: yv1ing // @Author: me@yvling.cn // @Date: 2025/8/28 14:22 // @Desc: 初始化mysql数据库 func dsn() string { return fmt.Sprintf( "%s:%s@tcp(%s:%d)/%s?charset=utf8mb4&parseTime=True&loc=Local", config.Config.Mysql.Username, config.Config.Mysql.Password, config.Config.Mysql.Host, config.Config.Mysql.Port, config.Config.Mysql.Database, ) } func recreateTables(db *gorm.DB, models ...interface{}) error { err := db.Migrator().DropTable(models...) if err != nil { return err } return db.AutoMigrate(models...) } func InitDatabase() error { db, err := gorm.Open(mysql.Open(dsn()), &gorm.Config{}) if err != nil { return err } err = recreateTables( db, &systemmodel.User{}, ) repository.SetupRepository(db) return nil }