using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Microsoft.Extensions.Configuration; using System; using System.IO; namespace GermanApp.Infrastructure.Data.DbContext; /// /// 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. /// public class AppDbContextFactory : IDesignTimeDbContextFactory { 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(); // 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); } }