From b6c2b83b3ece1c23e46f190ec57d32b7b3aada82 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Thu, 16 Jan 2020 18:19:59 +0100 Subject: [PATCH] Migration improved. --- .../Json/Newtonsoft/JsonValueConverter.cs | 22 +++++++------- .../Migrations/MongoDb/RenameAssetMetadata.cs | 30 +++++++++++++++---- 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs index 21b5c48aa..116c57bfa 100644 --- a/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs +++ b/backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs @@ -95,16 +95,18 @@ namespace Squidex.Infrastructure.Json.Newtonsoft throw new JsonSerializationException("Unexpected end when reading Object."); } - case JsonToken.Integer: - return JsonValue.Create((long)reader.Value!); - case JsonToken.Float: - return JsonValue.Create((double)reader.Value!); - case JsonToken.Boolean: - return JsonValue.Create((bool)reader.Value!); - case JsonToken.Date: - return JsonValue.Create(((DateTime)reader.Value!).ToIso8601()); - case JsonToken.String: - return JsonValue.Create(reader.Value!.ToString()); + case JsonToken.Integer when reader.Value is int i: + return JsonValue.Create(i); + case JsonToken.Integer when reader.Value is long l: + return JsonValue.Create(l); + case JsonToken.Float when reader.Value is float f: + return JsonValue.Create(f); + case JsonToken.Boolean when reader.Value is bool b: + return JsonValue.Create(b); + case JsonToken.Date when reader.Value is DateTime d: + return JsonValue.Create(d.ToIso8601()); + case JsonToken.String when reader.Value is string s: + return JsonValue.Create(s); case JsonToken.Null: case JsonToken.Undefined: return JsonValue.Null; diff --git a/backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs b/backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs index d08e14ebf..f794d62dd 100644 --- a/backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs +++ b/backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs @@ -25,18 +25,36 @@ namespace Migrate_01.Migrations.MongoDb { var collection = database.GetCollection("States_Assets"); - var update1 = + var createMetadata = Builders.Update .Set("md", new BsonDocument()); - await collection.UpdateManyAsync(new BsonDocument(), update1); + await collection.UpdateManyAsync(new BsonDocument(), createMetadata); - var update2 = + var setPixelDimensions = Builders.Update - .Rename("ph", "md.PixelHeight") - .Rename("pw", "md.PixelWidth"); + .Rename("ph", "md.pixelHeight") + .Rename("pw", "md.pixelWidth"); - await collection.UpdateManyAsync(new BsonDocument(), update2); + await collection.UpdateManyAsync(new BsonDocument(), setPixelDimensions); + + var setTypeToImage = + Builders.Update + .Set("at", "Image"); + + await collection.UpdateManyAsync(new BsonDocument("im", true), setTypeToImage); + + var setTypeToUnknown = + Builders.Update + .Set("at", "Unknown"); + + await collection.UpdateManyAsync(new BsonDocument("im", false), setTypeToUnknown); + + var removeIsImage = + Builders.Update + .Unset("im"); + + await collection.UpdateManyAsync(new BsonDocument(), removeIsImage); } } }