- Created AppDbContextFactory for EF Core design-time DbContext creation - Added DOTNET_RUNNING_IN_EF environment variable checks to skip validation during migrations - Modified MistralConnector, TtsService, VoskService to skip validation in EF design-time - Updated Program.cs ValidateAiConfigurations to skip during migrations - Applied migration 20260613125706_AddStorySegmentAndStoryProgressTables to database - Updated feature documentation for Phase 5 completion Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Design;
|
|
using Microsoft.Extensions.Configuration;
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace GermanApp.Infrastructure.Data.DbContext;
|
|
|
|
/// <summary>
|
|
/// Factory for creating AppDbContext instances during design-time (e.g., EF migrations).
|
|
/// This is used by EF Core tools to create the DbContext without running the full application startup.
|
|
/// </summary>
|
|
public class AppDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>
|
|
{
|
|
public AppDbContext CreateDbContext(string[] args)
|
|
{
|
|
// Build configuration from appsettings.json
|
|
var configuration = new ConfigurationBuilder()
|
|
.SetBasePath(Directory.GetCurrentDirectory())
|
|
.AddJsonFile("appsettings.json")
|
|
.AddJsonFile("appsettings.Development.json", optional: true)
|
|
.AddEnvironmentVariables()
|
|
.Build();
|
|
|
|
var builder = new DbContextOptionsBuilder<AppDbContext>();
|
|
|
|
// Use PostgreSQL
|
|
var connectionString = configuration.GetConnectionString("DefaultConnection")
|
|
?? "Host=localhost;Port=5432;Database=DeutschLernen;Username=postgres;Password=postgres";
|
|
|
|
builder.UseNpgsql(connectionString);
|
|
|
|
return new AppDbContext(builder.Options);
|
|
}
|
|
}
|