Files
ChronoCCG/Chrono/API/Data/AppDbContextFactory.cs
T
6d486f49 1d6207fbfe API Test
2026-08-17 00:45:08 -04:00

36 lines
1.4 KiB
C#

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
using Npgsql;
namespace API.Data;
public class AppDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>
{
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<AppDbContext>()
.UseNpgsql(csb.ConnectionString)
.Options;
return new AppDbContext(options);
}
}