using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Design; using Tiku.Application.Security; using Tiku.Infrastructure.Persistence; namespace Tiku.DbMigrator; public sealed class DesignTimeTikuDbContextFactory : IDesignTimeDbContextFactory { public TikuDbContext CreateDbContext(string[] args) { var connectionString = Environment.GetEnvironmentVariable("DATABASE_URL") ?? $"Host=localhost;Database=tiku;Username={Environment.UserName}"; var options = new DbContextOptionsBuilder() .UseNpgsql(connectionString, npgsql => npgsql.MigrationsAssembly(typeof(TikuDbContext).Assembly.FullName)) .Options; var tenantContext = new TenantContext(); tenantContext.InitializeSystem(null, "EF Core design-time model generation"); return new TikuDbContext(options, tenantContext); } }