Skip to content

Commit 36cdc4e

Browse files
renemadsenclaude
andcommitted
fix: guard ConfigureDbContext() Migrate() with IHistoryRepository
Avoids DDL on every API pod restart when plugin schemas are current (Galera-safe). Falls back to Migrate() on fresh install or when migrations are pending. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent ac1fbd5 commit 36cdc4e

1 file changed

Lines changed: 7 additions & 1 deletion

File tree

eFormAPI/Plugins/TimePlanning.Pn/TimePlanning.Pn/EformTimePlanningPlugin.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ namespace TimePlanning.Pn;
5555
using Infrastructure.Models.Settings;
5656
using Microsoft.AspNetCore.Builder;
5757
using Microsoft.EntityFrameworkCore;
58+
using Microsoft.EntityFrameworkCore.Infrastructure;
59+
using Microsoft.EntityFrameworkCore.Migrations;
5860
using Microsoft.Extensions.Configuration;
5961
using Microsoft.Extensions.DependencyInjection;
6062
using Microting.eFormApi.BasePn;
@@ -189,7 +191,11 @@ public void ConfigureDbContext(IServiceCollection services, string connectionStr
189191
var contextFactory = new TimePlanningPnContextFactory();
190192
var context = contextFactory.CreateDbContext(new[] { connectionString });
191193
Console.WriteLine("Starting to migrate TimePlanningPnDbContext to latest version");
192-
context.Database.Migrate();
194+
var historyRepo = context.GetService<IHistoryRepository>();
195+
if (!historyRepo.Exists() || context.Database.GetPendingMigrations().Any())
196+
{
197+
context.Database.Migrate();
198+
}
193199
Console.WriteLine("TimePlanningPnDbContext migrated to latest version");
194200

195201
// Seed database

0 commit comments

Comments
 (0)