using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Microsoft.Extensions.Configuration;
namespace w4c_workflows.Data;
///
/// Design-time factory so `dotnet ef` builds the context directly from
/// appsettings.json instead of running the web host (Program.cs applies
/// migrations at startup, which must not execute during tooling runs).
///
public class WorkflowsDbContextFactory : IDesignTimeDbContextFactory
{
public WorkflowsDbContext CreateDbContext(string[] args)
{
var configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true)
.AddEnvironmentVariables()
.Build();
var connectionString = configuration.GetConnectionString("DefaultConnection")
?? "Host=localhost;Port=5432;Database=w4c;Username=w4c;Password=w4c";
var options = new DbContextOptionsBuilder()
.UseNpgsql(connectionString)
.Options;
return new WorkflowsDbContext(options);
}
}