Refactor app architecture and clean local artifacts
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Design;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Backend.Data;
|
||||
|
||||
@@ -7,9 +8,24 @@ public sealed class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<Awa
|
||||
{
|
||||
public AwardsDbContext CreateDbContext(string[] args)
|
||||
{
|
||||
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development";
|
||||
var configuration = new ConfigurationBuilder()
|
||||
.SetBasePath(Directory.GetCurrentDirectory())
|
||||
.AddJsonFile("appsettings.json", optional: false)
|
||||
.AddJsonFile($"appsettings.{environment}.json", optional: true)
|
||||
.AddEnvironmentVariables()
|
||||
.Build();
|
||||
|
||||
var optionsBuilder = new DbContextOptionsBuilder<AwardsDbContext>();
|
||||
var connectionString = Environment.GetEnvironmentVariable("VTSA_POSTGRES")
|
||||
?? "Host=localhost;Port=5432;Database=vtuber_star_awards;Username=postgres;Password=postgres";
|
||||
var connectionString = configuration["VTSA_POSTGRES"]
|
||||
?? configuration.GetConnectionString("Postgres");
|
||||
|
||||
if (string.IsNullOrWhiteSpace(connectionString))
|
||||
{
|
||||
throw new InvalidOperationException(
|
||||
"No PostgreSQL connection string configured for design-time EF operations. " +
|
||||
"Set VTSA_POSTGRES or ConnectionStrings__Postgres before running dotnet ef.");
|
||||
}
|
||||
|
||||
optionsBuilder.UseNpgsql(connectionString);
|
||||
return new AwardsDbContext(optionsBuilder.Options);
|
||||
|
||||
Reference in New Issue
Block a user