diff --git a/internal/bootstrap/patch/all.go b/internal/bootstrap/patch/all.go index e85dd55c..44ba1737 100644 --- a/internal/bootstrap/patch/all.go +++ b/internal/bootstrap/patch/all.go @@ -4,6 +4,7 @@ import ( "github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_24_0" "github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_32_0" "github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_41_0" + "github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_all" ) type VersionPatches struct { @@ -32,4 +33,10 @@ var UpgradePatches = []VersionPatches{ v3_41_0.GrantAdminPermissions, }, }, + { + Version: "v3.0.0", + Patches: []func(){ + v3_all.RenameAlistV3Driver, + }, + }, } diff --git a/internal/bootstrap/patch/v3_all/rename.go b/internal/bootstrap/patch/v3_all/rename.go new file mode 100644 index 00000000..323b7391 --- /dev/null +++ b/internal/bootstrap/patch/v3_all/rename.go @@ -0,0 +1,33 @@ +package v3_all + +import ( + "github.com/OpenListTeam/OpenList/v4/internal/db" + "github.com/OpenListTeam/OpenList/v4/pkg/utils" +) + +// Rename Alist V3 driver to OpenList +func RenameAlistV3Driver() { + storages, _, err := db.GetStorages(1, -1) + if err != nil { + utils.Log.Errorf("[RenameAlistV3Driver] failed to get storages: %s", err.Error()) + return + } + + updatedCount := 0 + for _, s := range storages { + if s.Driver == "AList V3" { + utils.Log.Warnf("[RenameAlistV3Driver] rename storage [%d]%s from Alist V3 to OpenList", s.ID, s.MountPath) + s.Driver = "OpenList" + err = db.UpdateStorage(&s) + if err != nil { + utils.Log.Errorf("[RenameAlistV3Driver] failed to update storage [%d]%s: %s", s.ID, s.MountPath, err.Error()) + } else { + updatedCount++ + } + } + } + + if updatedCount > 0 { + utils.Log.Infof("[RenameAlistV3Driver] updated %d storages from Alist V3 to OpenList", updatedCount) + } +}