| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- 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
- }
|