Browse Source

Migration improved.

pull/470/head
Sebastian 6 years ago
parent
commit
b6c2b83b3e
  1. 22
      backend/src/Squidex.Infrastructure/Json/Newtonsoft/JsonValueConverter.cs
  2. 30
      backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs

22
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;

30
backend/tools/Migrate_01/Migrations/MongoDb/RenameAssetMetadata.cs

@ -25,18 +25,36 @@ namespace Migrate_01.Migrations.MongoDb
{
var collection = database.GetCollection<BsonDocument>("States_Assets");
var update1 =
var createMetadata =
Builders<BsonDocument>.Update
.Set("md", new BsonDocument());
await collection.UpdateManyAsync(new BsonDocument(), update1);
await collection.UpdateManyAsync(new BsonDocument(), createMetadata);
var update2 =
var setPixelDimensions =
Builders<BsonDocument>.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<BsonDocument>.Update
.Set("at", "Image");
await collection.UpdateManyAsync(new BsonDocument("im", true), setTypeToImage);
var setTypeToUnknown =
Builders<BsonDocument>.Update
.Set("at", "Unknown");
await collection.UpdateManyAsync(new BsonDocument("im", false), setTypeToUnknown);
var removeIsImage =
Builders<BsonDocument>.Update
.Unset("im");
await collection.UpdateManyAsync(new BsonDocument(), removeIsImage);
}
}
}

Loading…
Cancel
Save