From 69c25ccdd26f3025e1161cc6a6be9e0effda1a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Schultz=20Madsen?= Date: Tue, 2 Jun 2026 17:54:15 +0200 Subject: [PATCH] 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 --- .../ItemsPlanning.Pn/EformItemsPlanningPlugin.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eFormAPI/Plugins/ItemsPlanning.Pn/ItemsPlanning.Pn/EformItemsPlanningPlugin.cs b/eFormAPI/Plugins/ItemsPlanning.Pn/ItemsPlanning.Pn/EformItemsPlanningPlugin.cs index 1481eabb..0c0ac1e1 100644 --- a/eFormAPI/Plugins/ItemsPlanning.Pn/ItemsPlanning.Pn/EformItemsPlanningPlugin.cs +++ b/eFormAPI/Plugins/ItemsPlanning.Pn/ItemsPlanning.Pn/EformItemsPlanningPlugin.cs @@ -45,6 +45,8 @@ namespace ItemsPlanning.Pn using Services.ItemsPlanningTagsService; using Microsoft.AspNetCore.Builder; using Microsoft.EntityFrameworkCore; + using Microsoft.EntityFrameworkCore.Infrastructure; + using Microsoft.EntityFrameworkCore.Migrations; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microting.eFormApi.BasePn; @@ -173,7 +175,11 @@ public void ConfigureDbContext(IServiceCollection services, string connectionStr ItemsPlanningPnContextFactory contextFactory = new ItemsPlanningPnContextFactory(); var context = contextFactory.CreateDbContext(new[] { connectionString }); - context.Database.Migrate(); + var historyRepo = context.GetService(); + if (!historyRepo.Exists() || context.Database.GetPendingMigrations().Any()) + { + context.Database.Migrate(); + } // Seed database SeedDatabase(connectionString);