Use realm support for Guid

This commit is contained in:
Dean Herbert
2021-01-19 18:22:23 +09:00
parent 15db0e97d7
commit 68f2e7f61a
5 changed files with 15 additions and 15 deletions

View File

@ -2,7 +2,6 @@
// See the LICENCE file in the repository root for full licence text.
using System;
using System.ComponentModel.DataAnnotations.Schema;
using Newtonsoft.Json;
using Realms;
@ -11,16 +10,7 @@ namespace osu.Game.Database
public interface IHasGuidPrimaryKey
{
[JsonIgnore]
[Ignored]
public Guid Guid
{
get => new Guid(ID);
set => ID = value.ToString();
}
[JsonIgnore]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
[PrimaryKey]
string ID { get; set; }
public Guid ID { get; set; }
}
}

View File

@ -7,7 +7,9 @@ using osu.Framework.Graphics;
using osu.Framework.Logging;
using osu.Framework.Platform;
using osu.Framework.Statistics;
using osu.Game.Input.Bindings;
using Realms;
using Realms.Schema;
namespace osu.Game.Database
{
@ -17,7 +19,7 @@ namespace osu.Game.Database
private const string database_name = @"client";
private const int schema_version = 5;
private const int schema_version = 6;
/// <summary>
/// Lock object which is held for the duration of a write operation (via <see cref="GetForWrite"/>).
@ -93,6 +95,13 @@ namespace osu.Game.Database
private void onMigration(Migration migration, ulong lastSchemaVersion)
{
switch (lastSchemaVersion)
{
case 5:
// let's keep things simple. changing the type of the primary key is a bit involved.
migration.NewRealm.RemoveAll<RealmKeyBinding>();
break;
}
}
protected override void Dispose(bool isDisposing)