Files
goauto/server/cmd/migrate/migration/version-local/1788798000000_client_api_key.go
T

43 lines
1.5 KiB
Go

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