发布不推送数据库初始化

时间:2018-11-28 01:41:59

标签: c# asp.net-core .net-core

我们通过InputLayer上的 Web部署成功地将网络和database publish推入了Azure(生产环境-不可用)中。由于我们具有新的数据库结构和Web内容,因此我们决定删除生产环境中的所有表,并从头开始重新发布。

运行正常但不能进行数据库数据初始化的发布(我们在DbInitializer.cs中定义的示例数据)..仅数据库结构。在“发布设置”中,我们可以看到数据库DefaultConnection和EF迁移ApplicationDBContext都已被选中。

有什么想法吗?

环境:

VS 2017

Program.cs:

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

DBInitializer.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();
        }

1 个答案:

答案 0 :(得分:0)

发现了问题,它与DbInitializer的当前代码(dev)有关,因为我们覆盖了SaveChangesAsync内容。