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