Initial commit
This commit is contained in:
23
src/RolemasterDb.App/Data/RolemasterDbInitializer.cs
Normal file
23
src/RolemasterDb.App/Data/RolemasterDbInitializer.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace RolemasterDb.App.Data;
|
||||
|
||||
public static class RolemasterDbInitializer
|
||||
{
|
||||
public static async Task InitializeAsync(IServiceProvider services, CancellationToken cancellationToken = default)
|
||||
{
|
||||
await using var scope = services.CreateAsyncScope();
|
||||
var dbFactory = scope.ServiceProvider.GetRequiredService<IDbContextFactory<RolemasterDbContext>>();
|
||||
await using var dbContext = await dbFactory.CreateDbContextAsync(cancellationToken);
|
||||
|
||||
await dbContext.Database.EnsureCreatedAsync(cancellationToken);
|
||||
|
||||
if (await dbContext.AttackTables.AnyAsync(cancellationToken) || await dbContext.CriticalTables.AnyAsync(cancellationToken))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RolemasterSeedData.Seed(dbContext);
|
||||
await dbContext.SaveChangesAsync(cancellationToken);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user