diff --git a/src/CMSMicroservice.Infrastructure/Persistence/ApplicationDbContextInitialiser.cs b/src/CMSMicroservice.Infrastructure/Persistence/ApplicationDbContextInitialiser.cs index 03d4c16..fda1569 100644 --- a/src/CMSMicroservice.Infrastructure/Persistence/ApplicationDbContextInitialiser.cs +++ b/src/CMSMicroservice.Infrastructure/Persistence/ApplicationDbContextInitialiser.cs @@ -23,7 +23,29 @@ public class ApplicationDbContextInitialiser { if (_context.Database.IsSqlServer()) { - await _context.Database.MigrateAsync(); + // Check if database already exists and has pending migrations + bool dbExists = await _context.Database.CanConnectAsync(); + + if (dbExists) + { + _logger.LogInformation("Database exists, checking for pending migrations..."); + var pendingMigrations = await _context.Database.GetPendingMigrationsAsync(); + + if (pendingMigrations.Any()) + { + _logger.LogInformation("Applying {Count} pending migrations", pendingMigrations.Count()); + await _context.Database.MigrateAsync(); + } + else + { + _logger.LogInformation("Database is up to date, no migrations needed"); + } + } + else + { + _logger.LogInformation("Database does not exist, creating and migrating..."); + await _context.Database.MigrateAsync(); + } } } catch (Exception ex) @@ -32,7 +54,6 @@ public class ApplicationDbContextInitialiser throw; } } - public async Task SeedAsync() { try