feat(patch): add migration from Alist V3 driver to OpenList (#919)

* feat(patch): add migration from Alist V3 driver to OpenList

* chore(patch): improve logging
This commit is contained in:
MadDogOwner
2025-07-31 11:43:21 +08:00
committed by GitHub
parent 1682e873d6
commit ccd4af26e5
2 changed files with 40 additions and 0 deletions

View File

@ -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_24_0"
"github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_32_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_41_0"
"github.com/OpenListTeam/OpenList/v4/internal/bootstrap/patch/v3_all"
) )
type VersionPatches struct { type VersionPatches struct {
@ -32,4 +33,10 @@ var UpgradePatches = []VersionPatches{
v3_41_0.GrantAdminPermissions, v3_41_0.GrantAdminPermissions,
}, },
}, },
{
Version: "v3.0.0",
Patches: []func(){
v3_all.RenameAlistV3Driver,
},
},
} }

View File

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