Публикация не подталкивает инициализацию базы данных - PullRequest
0 голосов
/ 28 ноября 2018

Нам удалось выдвинуть Интернет и database publish ранее в Azure (производственная среда - не работает) через Web Deploy из VS 2017.Поскольку у нас есть новая структура базы данных и веб-контент, мы решили удалить все таблицы в производственной среде и снова выполнить публикацию с самого начала.

Публикация работает нормально, НО НЕТ инициализации данных базы данных (примеры данных, которые мы определили в DbInitializer.cs). ТОЛЬКО структура базы данных.В настройках публикации мы можем видеть, что для параметра DefaultConnection базы данных и приложения EF MigrationsDBContext установлены оба флажка.

Есть идеи?

Среда:

- .Net Core 2.1 
 - SQL Server 
 - Azure App Service

Program.cs:

public static void Main(string[] args)
        {
            var host = CreateWebHostBuilder(args).Build();

            using (var scope = host.Services.CreateScope())
            {
                var services = scope.ServiceProvider;

                try
                {
                    var context = services.GetRequiredService<ApplicationDbContext>();
                    var userManager = services.GetRequiredService<UserManager<ApplicationUser>>();
                    var roleManager = services.GetRequiredService<RoleManager<ApplicationRole>>();
                    var dbInitializerLogger = services.GetRequiredService<ILogger<DbInitializer>>();

                    context.Database.EnsureCreated();
                    // DbInitializer.Initialize(context, );

                    DbInitializer.Initialize(context, userManager, roleManager, dbInitializerLogger).Wait();

                }
                catch (Exception ex)
                {
                    var logger = services.GetRequiredService<ILogger<Program>>();
                    logger.LogError(ex, "An error occurred creating the DB.");
                }
            }

            host.Run();
        }

DBInitializer.cs:

public class DbInitializer
    {
        private static Host host;

        public static async Task Initialize(ApplicationDbContext context, UserManager<ApplicationUser> userManager,
        RoleManager<ApplicationRole> roleManager, ILogger<DbInitializer> logger)
        {
            //context.Database.EnsureCreated();

            // Look for any users.
            if (context.Users.Any())
            {
                return; // DB has been seeded
            }

            await CreateDefaultUserAndRoleForApplication(userManager, roleManager, logger);

            await CreateDefaultUserTableData(context, userManager, logger);
        }

 ...

}

1 Ответ

0 голосов
/ 01 декабря 2018

Найдена проблема, она связана с текущим кодом (dev) для DbInitializer, так как мы переопределяем материал SaveChangesAsync.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...