Browse Source

Migration for Rule events.

pull/337/head
Sebastian Stehle 7 years ago
parent
commit
a1b24a54e9
  1. 3
      src/Squidex/Config/Domain/StoreServices.cs
  2. 8
      tools/Migrate_01/MigrationPath.cs
  3. 1
      tools/Migrate_01/Migrations/AddPatterns.cs
  4. 34
      tools/Migrate_01/Migrations/ConvertRuleEventsJson.cs

3
src/Squidex/Config/Domain/StoreServices.cs

@ -69,6 +69,9 @@ namespace Squidex.Config.Domain
services.AddTransientAs<ConvertOldSnapshotStores>()
.As<IMigration>();
services.AddTransientAs<ConvertRuleEventsJson>()
.As<IMigration>();
services.AddTransientAs(c => new DeleteContentCollections(mongoContentDatabase))
.As<IMigration>();

8
tools/Migrate_01/MigrationPath.cs

@ -16,7 +16,7 @@ namespace Migrate_01
{
public sealed class MigrationPath : IMigrationPath
{
private const int CurrentVersion = 12;
private const int CurrentVersion = 13;
private readonly IServiceProvider serviceProvider;
public MigrationPath(IServiceProvider serviceProvider)
@ -78,6 +78,12 @@ namespace Migrate_01
yield return serviceProvider.GetRequiredService<RebuildContents>();
}
// Version 13: Json refactoring
if (version < 13)
{
yield return serviceProvider.GetRequiredService<ConvertRuleEventsJson>();
}
// Version 01: Introduce app patterns.
if (version < 1)
{

1
tools/Migrate_01/Migrations/AddPatterns.cs

@ -24,6 +24,7 @@ namespace Migrate_01.Migrations
public AddPatterns(InitialPatterns initialPatterns, IGrainFactory grainFactory)
{
this.initialPatterns = initialPatterns;
this.grainFactory = grainFactory;
}

34
tools/Migrate_01/Migrations/ConvertRuleEventsJson.cs

@ -0,0 +1,34 @@
// ==========================================================================
// Squidex Headless CMS
// ==========================================================================
// Copyright (c) Squidex UG (haftungsbeschraenkt)
// All rights reserved. Licensed under the MIT license.
// ==========================================================================
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
using Squidex.Infrastructure.Migrations;
namespace Migrate_01.Migrations
{
public sealed class ConvertRuleEventsJson : IMigration
{
private readonly IMongoCollection<BsonDocument> collection;
public ConvertRuleEventsJson(IMongoDatabase database)
{
collection = database.GetCollection<BsonDocument>("RuleEvents");
}
public async Task UpdateAsync()
{
foreach (var document in collection.Find(new BsonDocument()).ToEnumerable())
{
document["Job"]["actionData"] = document["Job"]["actionData"].ToBsonDocument().ToJson();
await collection.ReplaceOneAsync(Builders<BsonDocument>.Filter.Eq("_id", document["_id"].ToString()), document);
}
}
}
}
Loading…
Cancel
Save