diff --git a/FreeTubeSync/Program.cs b/FreeTubeSync/Program.cs index 6643e4a..8f93e25 100644 --- a/FreeTubeSync/Program.cs +++ b/FreeTubeSync/Program.cs @@ -1,13 +1,15 @@ using FreeTubeSync; using FreeTubeSync.Database; using FreeTubeSync.EndPoints; +using Microsoft.EntityFrameworkCore; var builder = WebApplication.CreateBuilder(args); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); -builder.Services.AddDbContext(); +builder.Services.AddDbContext(options => + options.UseSqlite(builder.Configuration.GetConnectionString("FreeTubeSync"))); builder.Services.AddScoped(typeof(IRepository<>), typeof(Repository<>)); @@ -21,4 +23,17 @@ app.MapProfileEndpoints(); app.MapSearchHistoryEndpoints(); app.MapSettingEndpoints(); +await using(var serviceScope = app.Services.CreateAsyncScope()) +await using (var dbContext = serviceScope.ServiceProvider.GetRequiredService()) +{ + try + { + await dbContext.Database.MigrateAsync(); + } + catch (Exception e) + { + await dbContext.Database.EnsureCreatedAsync(); + } +} + app.Run(); \ No newline at end of file