mirror of
https://github.com/ppy/osu.git
synced 2024-11-11 18:27:26 +08:00
Better inform users of migration failure reason when running Apply Silicon build
As mentioned in https://github.com/ppy/osu/discussions/17409#discussioncomment-2445464?
This commit is contained in:
parent
8c5594b3ea
commit
a98aac3bf2
@ -1,6 +1,9 @@
|
|||||||
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the MIT Licence.
|
||||||
// See the LICENCE file in the repository root for full licence text.
|
// See the LICENCE file in the repository root for full licence text.
|
||||||
|
|
||||||
|
#nullable enable
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
@ -14,6 +17,7 @@ using osu.Framework.Platform;
|
|||||||
using osu.Game.Beatmaps;
|
using osu.Game.Beatmaps;
|
||||||
using osu.Game.Configuration;
|
using osu.Game.Configuration;
|
||||||
using osu.Game.Graphics;
|
using osu.Game.Graphics;
|
||||||
|
using osu.Game.Graphics.Containers;
|
||||||
using osu.Game.Graphics.Sprites;
|
using osu.Game.Graphics.Sprites;
|
||||||
using osu.Game.Graphics.UserInterface;
|
using osu.Game.Graphics.UserInterface;
|
||||||
using osu.Game.Models;
|
using osu.Game.Models;
|
||||||
@ -29,8 +33,6 @@ using SharpCompress.Archives.Zip;
|
|||||||
using SharpCompress.Common;
|
using SharpCompress.Common;
|
||||||
using SharpCompress.Writers.Zip;
|
using SharpCompress.Writers.Zip;
|
||||||
|
|
||||||
#nullable enable
|
|
||||||
|
|
||||||
namespace osu.Game.Database
|
namespace osu.Game.Database
|
||||||
{
|
{
|
||||||
internal class EFToRealmMigrator : CompositeDrawable
|
internal class EFToRealmMigrator : CompositeDrawable
|
||||||
@ -57,7 +59,7 @@ namespace osu.Game.Database
|
|||||||
[Resolved]
|
[Resolved]
|
||||||
private Storage storage { get; set; } = null!;
|
private Storage storage { get; set; } = null!;
|
||||||
|
|
||||||
private readonly OsuSpriteText currentOperationText;
|
private readonly OsuTextFlowContainer currentOperationText;
|
||||||
|
|
||||||
public EFToRealmMigrator()
|
public EFToRealmMigrator()
|
||||||
{
|
{
|
||||||
@ -99,11 +101,13 @@ namespace osu.Game.Database
|
|||||||
{
|
{
|
||||||
State = { Value = Visibility.Visible }
|
State = { Value = Visibility.Visible }
|
||||||
},
|
},
|
||||||
currentOperationText = new OsuSpriteText
|
currentOperationText = new OsuTextFlowContainer(cp => cp.Font = OsuFont.Default.With(size: 30))
|
||||||
{
|
{
|
||||||
Anchor = Anchor.Centre,
|
Anchor = Anchor.Centre,
|
||||||
Origin = Anchor.Centre,
|
Origin = Anchor.Centre,
|
||||||
Font = OsuFont.Default.With(size: 30)
|
AutoSizeAxes = Axes.Y,
|
||||||
|
RelativeSizeAxes = Axes.X,
|
||||||
|
TextAnchor = Anchor.TopCentre,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -147,19 +151,33 @@ namespace osu.Game.Database
|
|||||||
log("Migration successful!");
|
log("Migration successful!");
|
||||||
|
|
||||||
if (DebugUtils.IsDebugBuild)
|
if (DebugUtils.IsDebugBuild)
|
||||||
Logger.Log("Your development database has been fully migrated to realm. If you switch back to a pre-realm branch and need your previous database, rename the backup file back to \"client.db\".\n\nNote that doing this can potentially leave your file store in a bad state.", level: LogLevel.Important);
|
{
|
||||||
|
Logger.Log(
|
||||||
|
"Your development database has been fully migrated to realm. If you switch back to a pre-realm branch and need your previous database, rename the backup file back to \"client.db\".\n\nNote that doing this can potentially leave your file store in a bad state.",
|
||||||
|
level: LogLevel.Important);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log("Migration failed!");
|
log("Migration failed!");
|
||||||
Logger.Log(t.Exception.ToString(), LoggingTarget.Database);
|
Logger.Log(t.Exception.ToString(), LoggingTarget.Database);
|
||||||
|
|
||||||
|
if (t.Exception.Flatten().InnerException is TypeInitializationException)
|
||||||
|
{
|
||||||
|
// Not guaranteed to be the only cause of exception, but let's roll with it for now.
|
||||||
|
log("Please download and run the intel version of osu! once\nto allow data migration to complete!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
notificationOverlay.Post(new SimpleErrorNotification
|
notificationOverlay.Post(new SimpleErrorNotification
|
||||||
{
|
{
|
||||||
Text = "IMPORTANT: During data migration, some of your data could not be successfully migrated. The previous version has been backed up.\n\nFor further assistance, please open a discussion on github and attach your backup files (click to get started).",
|
Text =
|
||||||
|
"IMPORTANT: During data migration, some of your data could not be successfully migrated. The previous version has been backed up.\n\nFor further assistance, please open a discussion on github and attach your backup files (click to get started).",
|
||||||
Activated = () =>
|
Activated = () =>
|
||||||
{
|
{
|
||||||
game.OpenUrlExternally($@"https://github.com/ppy/osu/discussions/new?title=Realm%20migration%20issue ({t.Exception.Message})&body=Please%20drag%20the%20""attach_me.zip""%20file%20here!&category=q-a", true);
|
game.OpenUrlExternally(
|
||||||
|
$@"https://github.com/ppy/osu/discussions/new?title=Realm%20migration%20issue ({t.Exception.Message})&body=Please%20drag%20the%20""attach_me.zip""%20file%20here!&category=q-a",
|
||||||
|
true);
|
||||||
|
|
||||||
const string attachment_filename = "attach_me.zip";
|
const string attachment_filename = "attach_me.zip";
|
||||||
const string backup_folder = "backups";
|
const string backup_folder = "backups";
|
||||||
|
Loading…
Reference in New Issue
Block a user