* Added migrations to install EF Core OpenIddict tables * Handle Install of ef core data (Needs to be outside of transaction * Cleanup and renaming, as these things will be reused for more than openiddict in the future * Cleanup * Extract db context setup * Minor cleanup --------- Co-authored-by: Nikolaj <nikolajlauridsen@protonmail.ch>
34 lines
1.2 KiB
C#
34 lines
1.2 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Umbraco.Cms.Persistence.EFCore.Migrations;
|
|
using Umbraco.Extensions;
|
|
|
|
namespace Umbraco.Cms.Persistence.EFCore.SqlServer;
|
|
|
|
public class SqlServerMigrationProvider : IMigrationProvider
|
|
{
|
|
private readonly IDbContextFactory<UmbracoDbContext> _dbContextFactory;
|
|
|
|
public SqlServerMigrationProvider(IDbContextFactory<UmbracoDbContext> dbContextFactory) => _dbContextFactory = dbContextFactory;
|
|
|
|
public string ProviderName => "Microsoft.Data.SqlClient";
|
|
|
|
public async Task MigrateAsync(EFCoreMigration migration)
|
|
{
|
|
UmbracoDbContext context = await _dbContextFactory.CreateDbContextAsync();
|
|
await context.MigrateDatabaseAsync(GetMigrationType(migration));
|
|
}
|
|
|
|
public async Task MigrateAllAsync()
|
|
{
|
|
UmbracoDbContext context = await _dbContextFactory.CreateDbContextAsync();
|
|
await context.Database.MigrateAsync();
|
|
}
|
|
|
|
private static Type GetMigrationType(EFCoreMigration migration) =>
|
|
migration switch
|
|
{
|
|
EFCoreMigration.InitialCreate => typeof(Migrations.InitialCreate),
|
|
_ => throw new ArgumentOutOfRangeException(nameof(migration), $@"Not expected migration value: {migration}")
|
|
};
|
|
}
|