From 058b17a3f0fe8ceacfd13614d9ad30e8e7859529 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 29 Oct 2020 22:14:41 +0100 Subject: [PATCH] Fix parent id in asset folders. --- .../Migrations/MongoDb/ConvertDocumentIds.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/backend/src/Migrations/Migrations/MongoDb/ConvertDocumentIds.cs b/backend/src/Migrations/Migrations/MongoDb/ConvertDocumentIds.cs index 946a28edb..621518227 100644 --- a/backend/src/Migrations/Migrations/MongoDb/ConvertDocumentIds.cs +++ b/backend/src/Migrations/Migrations/MongoDb/ConvertDocumentIds.cs @@ -60,7 +60,7 @@ namespace Migrations.Migrations.MongoDb { case Scope.Assets: await RebuildAsync(database, "States_Assets"); - await RebuildAsync(database, "States_AssetFolders"); + await RebuildAsync(database, "States_AssetFolders", null, ConvertParentId); break; case Scope.Contents: await RebuildAsync(databaseContent, "State_Contents_All", "States_Contents_All2"); @@ -69,7 +69,7 @@ namespace Migrations.Migrations.MongoDb } } - private static async Task RebuildAsync(IMongoDatabase database, string collectionNameOld, string? collectionNameNew = null) + private static async Task RebuildAsync(IMongoDatabase database, string collectionNameOld, string? collectionNameNew = null, Action? extraAction = null) { const int SizeOfBatch = 1000; const int SizeOfQueue = 10; @@ -116,6 +116,11 @@ namespace Migrations.Migrations.MongoDb document["id"] = documentIdOld; document["_id"] = documentIdNew; + if (extraAction != null) + { + extraAction(document); + } + var filter = Builders.Filter.Eq("_id", documentIdNew); updates.Add(new ReplaceOneModel(filter, document) @@ -143,5 +148,10 @@ namespace Migrations.Migrations.MongoDb await actionBlock.Completion; } + + private static void ConvertParentId(BsonDocument document) + { + document["pi"] = document["pi"].AsGuid.ToString(); + } } }