From 8cede1be917ac17cefaf34e6ca54f6d5dac40f37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Schultz=20Madsen?= Date: Tue, 2 Jun 2026 17:54:27 +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 --- .../EformOuterInnerResourcePlugin.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/eFormAPI/Plugins/OuterInnerResource.Pn/OuterInnerResource.Pn/EformOuterInnerResourcePlugin.cs b/eFormAPI/Plugins/OuterInnerResource.Pn/OuterInnerResource.Pn/EformOuterInnerResourcePlugin.cs index 2d714897..8ac577a6 100644 --- a/eFormAPI/Plugins/OuterInnerResource.Pn/OuterInnerResource.Pn/EformOuterInnerResourcePlugin.cs +++ b/eFormAPI/Plugins/OuterInnerResource.Pn/OuterInnerResource.Pn/EformOuterInnerResourcePlugin.cs @@ -36,6 +36,8 @@ namespace OuterInnerResource.Pn using System.Reflection; 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; @@ -162,7 +164,11 @@ public void ConfigureDbContext(IServiceCollection services, string connectionStr using (var context = contextFactory.CreateDbContext(new[] { connectionString })) { - context.Database.Migrate(); + var historyRepo = context.GetService(); + if (!historyRepo.Exists() || context.Database.GetPendingMigrations().Any()) + { + context.Database.Migrate(); + } try { _outerResourceName = context.PluginConfigurationValues.FirstOrDefault(x => x.Name == "OuterInnerResourceSettings:OuterResourceName")?.Value;