package migration import ( "IotAdmin/core/sdk" "IotAdmin/core/sdk/config" "IotAdmin/core/sdk/pkg" "IotAdmin/migration/models" "bytes" "fmt" "html/template" "strconv" "time" ) func GenFile(vbAdmin bool) error { t1, err := template.ParseFiles("template/migrate.template") if err != nil { return err } m := map[string]string{} m["GenerateTime"] = strconv.FormatInt(time.Now().UnixNano()/1e6, 10) m["Package"] = "version_local" if vbAdmin { m["Package"] = "version" } var b1 bytes.Buffer err = t1.Execute(&b1, m) if vbAdmin { pkg.FileCreate(b1, "./migration/version/"+m["GenerateTime"]+"_migrate.go") } else { pkg.FileCreate(b1, "./migration/version-local/"+m["GenerateTime"]+"_migrate.go") } return nil } func MigrateModel(host string) error { if host == "" { host = "*" } db := sdk.Runtime.GetDbByKey(host) if db == nil { if len(sdk.Runtime.GetDb()) == 1 && host == "*" { for k, v := range sdk.Runtime.GetDb() { db = v host = k break } } } if db == nil { return fmt.Errorf("未找到数据库配置") } if config.DatabasesConfig[host].Driver == "mysql" { //初始化数据库时候用 db.Set("gorm:table_options", "ENGINE=InnoDB CHARSET=utf8mb4") } err := db.Debug().AutoMigrate(&models.Migration{}) if err != nil { return err } Migrate.SetDb(db.Debug()) Migrate.Migrate() return err }