26 lines
943 B
C#
26 lines
943 B
C#
using Microsoft.EntityFrameworkCore;
|
|
using Microsoft.EntityFrameworkCore.Design;
|
|
using Tiku.Application.Security;
|
|
using Tiku.Infrastructure.Persistence;
|
|
|
|
namespace Tiku.DbMigrator;
|
|
|
|
public sealed class DesignTimeTikuDbContextFactory : IDesignTimeDbContextFactory<TikuDbContext>
|
|
{
|
|
public TikuDbContext CreateDbContext(string[] args)
|
|
{
|
|
var connectionString =
|
|
Environment.GetEnvironmentVariable("DATABASE_URL") ??
|
|
$"Host=localhost;Database=tiku;Username={Environment.UserName}";
|
|
|
|
var options = new DbContextOptionsBuilder<TikuDbContext>()
|
|
.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);
|
|
}
|
|
}
|