package db import ( "context" "errors" capp "f1-game/internal/cherry_app" nameDB "f1-game/internal/name/db" "fmt" clog "github.com/cherry-game/cherry/logger" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" ) // ver00008 修正 logic_watcher_table type ver00008 struct { } // Version 手动自增,必需唯一 func (ver00008) Version() int32 { return 8 } func (ver00008) Enable() bool { return false } func (p ver00008) Execute() bool { clog.Infof("Execute %v, nodeID = %s", p.Version(), capp.NodeID()) list := getAllTables[*MapPlayerTable](nameDB.Table_MapPlayer) if len(list) == 0 { return true } var modifyCount int64 watcherCollection := dbComponent.DB().Collection(nameDB.Table_LogicWatcher) for _, playerTable := range list { result, err := watcherCollection.UpdateByID(context.Background(), playerTable.PlayerID, bson.M{ "$set": bson.M{"Watcher.LeagueID": playerTable.LeagueID}, }) if err != nil && !errors.Is(err, mongo.ErrNoDocuments) { clog.Errorf("[migrate %v] update playerID = %d error: %v", p.Version(), playerTable.PlayerID, err) return false } clog.Debugf("[migrate %v] update playerID = %d success", p.Version(), playerTable.PlayerID) modifyCount += result.ModifiedCount } clog.Infof("[migrate %v] update logic watcher table success: count = %d", p.Version(), modifyCount) return true } func (p ver00008) Desc() string { return fmt.Sprintf("[migrator - %d] Fix MarchViewID", p.Version()) }