// WingsEmu // // Developed by NosWings Team using System; using Microsoft.EntityFrameworkCore; namespace PhoenixLib.DAL.EFCore.PGSQL { public class PgSqlDatabaseConfiguration where TDbContext : DbContext { public PgSqlDatabaseConfiguration(string ip, string username, string password, string database, int port) { Ip = ip; Username = username; Password = password; Database = database; Port = port; } public string Ip { get; } public string Username { get; } public string Password { get; } public string Database { get; } public int Port { get; } public static PgSqlDatabaseConfiguration FromEnv() { string ip = Environment.GetEnvironmentVariable("POSTGRES_DATABASE_IP") ?? "localhost"; string username = Environment.GetEnvironmentVariable("POSTGRES_DATABASE_USER") ?? "postgres"; string password = Environment.GetEnvironmentVariable("POSTGRES_DATABASE_PASSWORD") ?? "postgres"; string database = Environment.GetEnvironmentVariable("POSTGRES_DATABASE_NAME") ?? "postgres"; if (!ushort.TryParse(Environment.GetEnvironmentVariable("POSTGRES_DATABASE_PORT") ?? "5432", out ushort port)) { port = 5432; } return new PgSqlDatabaseConfiguration(ip, username, password, database, port); } public override string ToString() => $"Server={Ip};Port={Port};Database={Database};User Id={Username};Password={Password};"; } }