using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Npgsql; namespace API.Data; public class AppDbContextFactory : IDesignTimeDbContextFactory { public AppDbContext CreateDbContext(string[] args) { var envPassword = Environment.GetEnvironmentVariable("PostgreSQL_Password") ?? (OperatingSystem.IsWindows() ? Environment.GetEnvironmentVariable("PostgreSQL_Password", EnvironmentVariableTarget.User) : null) ?? (OperatingSystem.IsWindows() ? Environment.GetEnvironmentVariable("PostgreSQL_Password", EnvironmentVariableTarget.Machine) : null) ?? Environment.GetEnvironmentVariable("POSTGRESQL_PASSWORD") ?? Environment.GetEnvironmentVariable("POSTGRES_PASSWORD"); var csb = new NpgsqlConnectionStringBuilder { Host = "localhost", Database = "chrono", Username = "postgres", Password = envPassword }; var options = new DbContextOptionsBuilder() .UseNpgsql(csb.ConnectionString) .Options; return new AppDbContext(options); } }