// Apply migrations / create database on startup
using (var scope = app.Services.CreateScope())
{
var logger = scope.ServiceProvider.GetRequiredService();
logger.LogInformation("Starting database migration. Environment: {Environment}", app.Environment.EnvironmentName);
try
{
var dbFactory = scope.ServiceProvider.GetRequiredService();
var db = dbFactory.CreateAssortmentDbContext();
if (db.Database.IsRelational())
{
logger.LogInformation("Applying migrations...");
db.Database.Migrate();
logger.LogInformation("Migrations applied successfully.");
}
else
{
db.Database.EnsureCreated();
}
//CREATE CUSTOM TABLE TYPES
_ = db.Database.ExecuteSqlRaw(ProductVariantType.Create);
_ = db.Database.ExecuteSqlRaw(SalesAccountType.Create);
logger.LogInformation("Database setup completed successfully.");
}
catch (Exception ex)
{
logger.LogError(ex, "An error occurred while migrating the database.");
throw;
}
}
Он работает, когда я запускаю код локально, но при развертывании в службе приложений Azure база данных не обновляется. Сообщения «Применение миграции...» и «Миграции применены успешно». регистрируются. Перезапуск Службы приложений также не применяет миграции.
Я разрабатываю API .NET CORE, и в моем Program.cs есть следующий код: [code]// Apply migrations / create database on startup using (var scope = app.Services.CreateScope()) { var logger = scope.ServiceProvider.GetRequiredService(); logger.LogInformation("Starting database migration. Environment: {Environment}", app.Environment.EnvironmentName);
try { var dbFactory = scope.ServiceProvider.GetRequiredService(); var db = dbFactory.CreateAssortmentDbContext(); if (db.Database.IsRelational()) { logger.LogInformation("Applying migrations..."); db.Database.Migrate(); logger.LogInformation("Migrations applied successfully."); } else { db.Database.EnsureCreated(); }
//CREATE CUSTOM TABLE TYPES _ = db.Database.ExecuteSqlRaw(ProductVariantType.Create); _ = db.Database.ExecuteSqlRaw(SalesAccountType.Create); logger.LogInformation("Database setup completed successfully."); } catch (Exception ex) { logger.LogError(ex, "An error occurred while migrating the database."); throw; } } [/code] Он работает, когда я запускаю код локально, но при развертывании в службе приложений Azure база данных не обновляется. Сообщения «Применение миграции...» и «Миграции применены успешно». регистрируются. Перезапуск Службы приложений также не применяет миграции.