Browse Source

Switch major version.

pull/768/head
Sebastian 4 years ago
parent
commit
8a2b13e1d1
  1. 4
      backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs
  2. 12
      backend/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoExtensions.cs

4
backend/src/Squidex.Infrastructure.MongoDb/EventSourcing/MongoEventStore.cs

@ -77,10 +77,10 @@ namespace Squidex.Infrastructure.EventSourcing
}) })
}, ct); }, ct);
var clusterVersion = await Database.GetVersionAsync(ct); var clusterVersion = await Database.GetMajorVersionAsync(ct);
var clusteredAsReplica = Database.Client.Cluster.Description.Type == ClusterType.ReplicaSet; var clusteredAsReplica = Database.Client.Cluster.Description.Type == ClusterType.ReplicaSet;
CanUseChangeStreams = clusteredAsReplica && clusterVersion >= new Version("4.0"); CanUseChangeStreams = clusteredAsReplica && clusterVersion >= 4;
} }
} }
} }

12
backend/src/Squidex.Infrastructure.MongoDb/MongoDb/MongoExtensions.cs

@ -7,6 +7,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization;
using System.Linq.Expressions; using System.Linq.Expressions;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading; using System.Threading;
@ -144,7 +145,7 @@ namespace Squidex.Infrastructure.MongoDb
} }
} }
public static async Task<Version> GetVersionAsync(this IMongoDatabase database, public static async Task<int> GetMajorVersionAsync(this IMongoDatabase database,
CancellationToken ct = default) CancellationToken ct = default)
{ {
var command = var command =
@ -153,9 +154,14 @@ namespace Squidex.Infrastructure.MongoDb
{ "buildInfo", 1 } { "buildInfo", 1 }
}); });
var result = await database.RunCommandAsync(command, cancellationToken: ct); var document = await database.RunCommandAsync(command, cancellationToken: ct);
return Version.Parse(result["version"].AsString); var versionString = document["version"].AsString;
var versionMajor = versionString.Split('.')[0];
int.TryParse(versionMajor, NumberStyles.Integer, CultureInfo.InvariantCulture, out int result);
return result;
} }
} }
} }

Loading…
Cancel
Save