diff --git a/services/Directory/AddMigration.md b/services/Directory/AddMigration.md new file mode 100644 index 000000000..aa3f7604f --- /dev/null +++ b/services/Directory/AddMigration.md @@ -0,0 +1 @@ +dotnet ef migrations add InitialCreate --project FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj --startup-project FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj \ No newline at end of file diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj index 157f21d17..ae1ecde73 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj +++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/FilterLists.Directory.Infrastructure.MigrationService.csproj @@ -7,6 +7,16 @@ + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + diff --git a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs index d58815e48..23db377b2 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure.MigrationService/Program.cs @@ -1,6 +1,8 @@ +using FilterLists.Directory.Infrastructure; using FilterLists.Directory.Infrastructure.MigrationService; var builder = Host.CreateApplicationBuilder(args); +builder.AddInfrastructureForDbMaintenance(); builder.Services.AddHostedService(); var host = builder.Build(); diff --git a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj index 3a6353295..9239b682c 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj +++ b/services/Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj @@ -6,4 +6,8 @@ enable + + + + diff --git a/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs new file mode 100644 index 000000000..d89406738 --- /dev/null +++ b/services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs @@ -0,0 +1,16 @@ +using FilterLists.Directory.Infrastructure.Persistence.Queries.Context; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Hosting; + +namespace FilterLists.Directory.Infrastructure; + +public static class ConfigurationExtensions +{ + public static void AddInfrastructureForDbMaintenance(this IHostApplicationBuilder builder) + { + builder.AddSqlServerDbContext("directorydb", + settings => { }, + o => o.UseSqlServer(so => so.MigrationsAssembly("FilterLists.Directory.Infrastructure.Migrations")) + ); + } +} \ No newline at end of file diff --git a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs index a996d514e..3d1c08a25 100644 --- a/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs +++ b/services/Directory/FilterLists.Directory.Infrastructure/Persistence/SeedExtensions.cs @@ -42,7 +42,7 @@ public static void HasDataJsonFile(this OwnedNavigationBuilder ownedNav private static List Deserialize() { // uncomment to short-circuit HasData() when adding a migration - //return new List(); + return new List(); var path = Path.Combine("../data", $"{typeof(TEntity).Name}.json"); if (!File.Exists(path)) return [];