public static async Task <IHost> MigrateDataBaseAsync(this IHost host) { using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; try { var dbContext = services.GetRequiredService <StoreContext>(); await dbContext.Database.MigrateAsync(); await SeedManager.SeedDataBaseAsync(dbContext, services.GetRequiredService <ILogger <SeedManager> >()); var userDbContext = services.GetRequiredService <AppUserDbContext>(); await userDbContext.Database.MigrateAsync(); await AppUserDbContextSeed.SeedUserDataAsync(services.GetRequiredService <UserManager <AppUser> >()); } catch (Exception ex) { var logger = services.GetRequiredService <ILogger <Program> >(); logger.LogError(ex, "An error occured while applying migrations"); } } return(host); }
public static async Task Main(string[] args) { var host = CreateHostBuilder(args).Build(); using (var scope = host.Services.CreateScope()) { var services = scope.ServiceProvider; var loggerFactory = services.GetRequiredService <ILoggerFactory>(); try { var context = services.GetRequiredService <StoreContext>(); await context.Database.MigrateAsync(); await StoreContextSeed.SeedAsync(context, loggerFactory); var userManager = services.GetRequiredService <UserManager <AppUser> >(); var identityContext = services.GetRequiredService <AppUserDbContext>(); await identityContext.Database.MigrateAsync(); await AppUserDbContextSeed.Seed(userManager); } catch (Exception ex) { var logger = loggerFactory.CreateLogger <Program>(); logger.LogError(ex, "An error occured during migration"); } } host.Run(); }