using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Design;
namespace Vanguard.Server.Storage;
///
/// Контекст для `dotnet ef`. EF не поднимает всё приложение: берёт фабрику
/// и генерирует миграцию по модели. Строка подключения нужна только
/// для выбора провайдера.
///
public sealed class MatchDbContextDesignFactory : IDesignTimeDbContextFactory
{
public MatchDbContext CreateDbContext(string[] args)
{
var connection = Environment.GetEnvironmentVariable("VANGUARD_DESIGN_CONNECTION")
?? "Host=localhost;Database=vanguard;Username=vanguard;Password=vanguard";
var options = new DbContextOptionsBuilder()
.UseNpgsql(connection)
.Options;
return new MatchDbContext(options);
}
}