Files
gin-admin/internal/core/initialize/database.go
2025-10-24 10:07:42 +08:00

51 lines
961 B
Go

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
// @Email: 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
}