36 lines
1.4 KiB
C#
36 lines
1.4 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Design;
|
|
using Npgsql;
|
|
|
|
namespace Cloud;
|
|
|
|
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);
|
|
}
|
|
} |