mirror of https://github.com/ppy/osu
Add `LegacyOnlineID` with backwards migration
This commit is contained in:
parent
9cd33d9bb2
commit
c1a817fec6
|
@ -84,8 +84,9 @@ public class RealmAccess : IDisposable
|
|||
/// 32 2023-07-09 Populate legacy scores with the ScoreV2 mod (and restore TotalScore to the legacy total for such scores) using replay files.
|
||||
/// 33 2023-08-16 Reset default chat toggle key binding to avoid conflict with newly added leaderboard toggle key binding.
|
||||
/// 34 2023-08-21 Add BackgroundReprocessingFailed flag to ScoreInfo to track upgrade failures.
|
||||
/// 35 2023-09-01 Add LegacyOnlineID to ScoreInfo. Move osu_scores_*_high IDs stored in OnlineID to LegacyOnlineID. Reset anomalous OnlineIDs.
|
||||
/// </summary>
|
||||
private const int schema_version = 34;
|
||||
private const int schema_version = 35;
|
||||
|
||||
/// <summary>
|
||||
/// Lock object which is held during <see cref="BlockAllOperations"/> sections, blocking realm retrieval during blocking periods.
|
||||
|
@ -1031,6 +1032,24 @@ void convertOnlineIDs<T>() where T : RealmObject
|
|||
|
||||
break;
|
||||
}
|
||||
|
||||
case 35:
|
||||
{
|
||||
foreach (var score in migration.NewRealm.All<ScoreInfo>())
|
||||
{
|
||||
if (score.OnlineID > 0)
|
||||
{
|
||||
score.LegacyOnlineID = score.OnlineID;
|
||||
score.OnlineID = -1;
|
||||
}
|
||||
else
|
||||
{
|
||||
score.LegacyOnlineID = score.OnlineID = -1;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Logger.Log($"Migration completed in {stopwatch.ElapsedMilliseconds}ms");
|
||||
|
|
|
@ -100,9 +100,25 @@ public class ScoreInfo : RealmObject, IHasGuidPrimaryKey, IHasRealmFiles, ISoftD
|
|||
|
||||
public double? PP { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The online ID of this score.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// In the osu-web database, this ID (if present) comes from the new <c>solo_scores</c> table.
|
||||
/// </remarks>
|
||||
[Indexed]
|
||||
public long OnlineID { get; set; } = -1;
|
||||
|
||||
/// <summary>
|
||||
/// The legacy online ID of this score.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// In the osu-web database, this ID (if present) comes from the legacy <c>osu_scores_*_high</c> tables.
|
||||
/// This ID is also stored to replays set on osu!stable.
|
||||
/// </remarks>
|
||||
[Indexed]
|
||||
public long LegacyOnlineID { get; set; } = -1;
|
||||
|
||||
[MapTo("User")]
|
||||
public RealmUser RealmUser { get; set; } = null!;
|
||||
|
||||
|
|
Loading…
Reference in New Issue