Migrations: Fixes migrations from 13 to 17. Media Folder without Collection & Last Synced Table not existing. (#20743)
* Creating and adding new migration. And fixing another small bug. * Adding XML Header and renaming to a more clearly defined name
This commit is contained in:
committed by
Andy Butland
parent
2e85f1bbf8
commit
e3c394b109
@@ -138,5 +138,6 @@ public class UmbracoPlan : MigrationPlan
|
||||
To<V_17_0_0.MigrateSystemDatesToUtc>("{7208B20D-6BFC-472E-9374-85EEA817B27D}");
|
||||
To<V_17_0_0.AddDistributedJobLock>("{263075BF-F18A-480D-92B4-4947D2EAB772}");
|
||||
To<V_17_0_0.AddLastSyncedTable>("26179D88-58CE-4C92-B4A4-3CBA6E7188AC");
|
||||
To<V_17_0_0.EnsureDefaultMediaFolderHasDefaultCollection>("{8B2C830A-4FFB-4433-8337-8649B0BF52C8}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -80,5 +80,6 @@ public class UmbracoPremigrationPlan : MigrationPlan
|
||||
// When logging in, we save the user to the cache so these need to have run.
|
||||
To<V_17_0_0.AddCacheVersionDatabaseLock>("{1DC39DC7-A88A-4912-8E60-4FD36246E8D1}");
|
||||
To<V_17_0_0.AddRepositoryCacheVersionTable>("{A1B3F5D6-4C8B-4E7A-9F8C-1D2B3E4F5A6B}");
|
||||
To<V_17_0_0.AddLastSyncedTable>("{72894BCA-9FAD-4CC3-B0D0-D6CDA2FFA636}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Constants = Umbraco.Cms.Core.Constants;
|
||||
|
||||
namespace Umbraco.Cms.Infrastructure.Migrations.Upgrade.V_17_0_0;
|
||||
|
||||
/// <summary>
|
||||
/// Ensures that the Media Document Type called "Folder" gets a collection added to it.
|
||||
/// </summary>
|
||||
public class EnsureDefaultMediaFolderHasDefaultCollection : AsyncMigrationBase
|
||||
{
|
||||
private readonly IMediaTypeService _mediaTypeService;
|
||||
private readonly IDataTypeService _dataTypeService;
|
||||
|
||||
public EnsureDefaultMediaFolderHasDefaultCollection(
|
||||
IMigrationContext context,
|
||||
IMediaTypeService mediaTypeService,
|
||||
IDataTypeService dataTypeService)
|
||||
: base(context)
|
||||
{
|
||||
_mediaTypeService = mediaTypeService;
|
||||
_dataTypeService = dataTypeService;
|
||||
}
|
||||
|
||||
protected override async Task MigrateAsync()
|
||||
{
|
||||
IMediaType? folderMediaType = _mediaTypeService
|
||||
.Get(Guid.Parse("f38bd2d7-65d0-48e6-95dc-87ce06ec2d3d")); // Folder media type default key.
|
||||
|
||||
if (folderMediaType is null || folderMediaType.ListView is not null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
IDataType? dataType = await _dataTypeService.GetAsync(Guid.Parse("3a0156c4-3b8c-4803-bdc1-6871faa83fff")); // Media Collection default key.
|
||||
|
||||
if (dataType is null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
folderMediaType.ListView = dataType.Key;
|
||||
await _mediaTypeService.UpdateAsync(folderMediaType, Constants.Security.SuperUserKey);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user