one-api/model/migrate.go

46 lines
928 B
Go

package model
import (
"one-api/common"
"github.com/go-gormigrate/gormigrate/v2"
"gorm.io/gorm"
)
func removeKeyIndexMigration() *gormigrate.Migration {
return &gormigrate.Migration{
ID: "202405152141",
Migrate: func(tx *gorm.DB) error {
dialect := tx.Dialector.Name()
if dialect == "sqlite" {
return nil
}
if !tx.Migrator().HasIndex(&Channel{}, "idx_channels_key") {
return nil
}
err := tx.Migrator().DropIndex(&Channel{}, "idx_channels_key")
if err != nil {
common.SysLog("remove idx_channels_key Failure: " + err.Error())
}
return nil
},
Rollback: func(tx *gorm.DB) error {
return nil
},
}
}
func migration(db *gorm.DB) error {
// 如果是第一次运行 直接跳过
if !db.Migrator().HasTable("channels") {
return nil
}
m := gormigrate.New(db, gormigrate.DefaultOptions, []*gormigrate.Migration{
removeKeyIndexMigration(),
})
return m.Migrate()
}