From 93768e4571a9ef6cfaba229c551d6ab8b6ed548b Mon Sep 17 00:00:00 2001 From: Collin Barrett Date: Thu, 30 May 2024 21:05:55 -0500 Subject: [PATCH] =?UTF-8?q?feat(dir):=20=E2=9C=A8=20prep=20MigrationServic?= =?UTF-8?q?e=20for=20add=20migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/Directory/AddMigration.md | 1 + ...ectory.Infrastructure.MigrationService.csproj | 10 ++++++++++ .../Program.cs | 2 ++ ...ts.Directory.Infrastructure.Migrations.csproj | 4 ++++ .../ConfigurationExtensions.cs | 16 ++++++++++++++++ .../Persistence/SeedExtensions.cs | 2 +- 6 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 services/Directory/AddMigration.md create mode 100644 services/Directory/FilterLists.Directory.Infrastructure/ConfigurationExtensions.cs 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 [];