package version_local import ( "fmt" "go-admin/app/goauto/clientkey" "go-admin/cmd/migrate/migration" migrationmodels "go-admin/cmd/migrate/migration/models" common "go-admin/common/models" "gorm.io/gorm" "runtime" ) func init() { _, file, _, _ := runtime.Caller(0) migration.Migrate.SetVersion(migration.GetFilename(file), migrateClientAPIKey) } func migrateClientAPIKey(db *gorm.DB, version string) error { if err := db.AutoMigrate(&clientkey.Key{}, &clientkey.Audit{}); err != nil { return err } return db.Transaction(func(tx *gorm.DB) error { var parent migrationmodels.SysMenu if err := tx.Where("menu_name = ?", "GoAutoCollectionManagement").First(&parent).Error; err != nil { return err } child, _, err := upsertGoAutoMenu(tx, migrationmodels.SysMenu{MenuName: "GoAutoClientKeys", Title: "客户端密钥", Icon: "lock", Path: "/client-keys/index", MenuType: "C", Action: "无", ParentId: parent.MenuId, Component: "/goauto/client-keys/index", Sort: 6, Visible: "0", IsFrame: "1"}) if err != nil { return err } if err = tx.Model(&child).Update("paths", fmt.Sprintf("/0/%d/%d", parent.MenuId, child.MenuId)).Error; err != nil { return err } var admin migrationmodels.SysRole if err = tx.Where("role_key = ?", "admin").First(&admin).Error; err != nil { return err } if err = tx.Model(&admin).Association("SysMenu").Append(&child); err != nil { return err } return tx.Create(&common.Migration{Version: version}).Error }) }