Произошла ошибка для предупреждения «Microsoft.EntityFrameworkCore.Migrations.PendingModelChangesWarning»: модель для контекста «HealthChecksDb» имеет ожидающие изменения. Добавьте новую миграцию перед обновлением базы данных.
Мой собственный код не имеет контекста HealthChecksDb, поэтому он должен быть чем-то внутренним для ASP.NET Core.
Но что такое «ожидающие изменения»?
- Мой код не имеет контекста HealthChecksDb, поэтому должно быть что-то внутреннее для ASP.NET Core I угадайте?
- У меня нет таблиц с именем HealthCheck
- Я не вносил никаких изменений в схему.
- Если я использую dotnet ef add для создания миграции, эта миграция пуста (и так и должно быть)
Вот выдержки из моего кода:
// From Main:
IHost host = CreateHostBuilder(args, log, appSettings, app).Build();
new Thread(() =>
{
host.Run();
}) {
IsBackground = true
}.Start(); ///
{
string port = Environment.GetEnvironmentVariable("MYPORT");
webBuilder.UseKestrel();
webBuilder.UseUrls($"http://*:{port}");
webBuilder.ConfigureServices((services) =>
{
string configString = $"Host=blah;Database=blah{1};Username=blah{2};Password=blah;Include Error Detail=True";
services.AddSingleton(myapp);
/// If I comment out these two AddHealthCheck calls,
/// the exception is not thrown (unsurprisingly).
services.AddHealthChecks()
.AddCheck("MyAppHealth", new HealthCheck(myapp));
services.AddHealthChecksUI()
.AddPostgreSqlStorage(configString);
services.AddControllers();
});
webBuilder.Configure(app =>
{
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapHealthChecks($"/myapp_health");
endpoints.MapHealthChecks($"/myapp_health_ui", new HealthCheckOptions
{
ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
});
endpoints.MapControllers();
});
});
})
.UseSerilog();
}