43 lines
1.5 KiB
Go
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
|
|
})
|
|
}
|