From 999d625e76fff81cde1de3a62a3ac1ed83db828f Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Tue, 9 Nov 2021 14:51:06 +0900 Subject: [PATCH] Fix realm migration potentially failing for users that haven't run osu! in a long time As reported at https://github.com/ppy/osu/discussions/15530. --- osu.Game/Database/RealmContextFactory.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/osu.Game/Database/RealmContextFactory.cs b/osu.Game/Database/RealmContextFactory.cs index 20667bb3d1..7d9da96160 100644 --- a/osu.Game/Database/RealmContextFactory.cs +++ b/osu.Game/Database/RealmContextFactory.cs @@ -209,7 +209,13 @@ namespace osu.Game.Database case 9: // Pretty pointless to do this as beatmaps aren't really loaded via realm yet, but oh well. - var oldMetadata = migration.OldRealm.DynamicApi.All(getMappedOrOriginalName(typeof(RealmBeatmapMetadata))); + string className = getMappedOrOriginalName(typeof(RealmBeatmapMetadata)); + + // May be coming from a version before `RealmBeatmapMetadata` existed. + if (!migration.OldRealm.Schema.TryFindObjectSchema(className, out _)) + return; + + var oldMetadata = migration.OldRealm.DynamicApi.All(className); var newMetadata = migration.NewRealm.All(); int metadataCount = newMetadata.Count();