diff --git a/src/Web/Features/Contents/Data/ContentDbContext.cs b/src/Web/Features/Contents/Data/ContentDbContext.cs index 657ab6d..9f6b739 100644 --- a/src/Web/Features/Contents/Data/ContentDbContext.cs +++ b/src/Web/Features/Contents/Data/ContentDbContext.cs @@ -6,10 +6,12 @@ public class ContentDbContext( DbContextOptions options) : DbContext(options) { + public const string SchemaName = "Content"; + protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasDefaultSchema("Content"); - + modelBuilder .Entity() .Property(c => c.CreatedAt) diff --git a/src/Web/Features/Messages/Data/MessagingDbContext.cs b/src/Web/Features/Messages/Data/MessagingDbContext.cs index 8cf5bf2..2d59e52 100644 --- a/src/Web/Features/Messages/Data/MessagingDbContext.cs +++ b/src/Web/Features/Messages/Data/MessagingDbContext.cs @@ -7,9 +7,11 @@ public class MessagingDbContext( DbContextOptions options) : DbContext(options) { + public const string SchemaName = "Messaging"; + protected override void OnModelCreating(ModelBuilder modelBuilder) { - modelBuilder.HasDefaultSchema("Messaging"); + modelBuilder.HasDefaultSchema(SchemaName); modelBuilder .Entity() diff --git a/src/Web/Program.cs b/src/Web/Program.cs index 759f533..f44349a 100644 --- a/src/Web/Program.cs +++ b/src/Web/Program.cs @@ -6,7 +6,9 @@ using Hutopy.Infrastructure.Data; using Hutopy.Infrastructure.Identity; using Hutopy.Web; using Hutopy.Web.Features.Contents; +using Hutopy.Web.Features.Contents.Data; using Hutopy.Web.Features.Messages; +using Hutopy.Web.Features.Messages.Data; using Microsoft.AspNetCore.HttpOverrides; using Microsoft.EntityFrameworkCore; using NSwag; @@ -73,17 +75,23 @@ builder.Services.AddOpenApiDocument((configure, sp) => In = OpenApiSecurityApiKeyLocation.Header, Description = "Type into the textbox: Bearer {your JWT token}.", }); - + configure.OperationProcessors.Add(new AspNetCoreOperationTagsProcessor()); configure.OperationProcessors.Add(new AspNetCoreOperationSecurityScopeProcessor("JWT")); }); var postgresConnectionString = builder.Configuration.GetConnectionString("PostgresConnection") - ?? throw new InvalidOperationException("Missing ConnectionStrings:PostgresConnection"); + ?? throw new InvalidOperationException("Missing ConnectionStrings:PostgresConnection"); builder.Services.AddFastEndpoints(); -builder.Services.AddContentModule(options => options.UseNpgsql(postgresConnectionString)); -builder.Services.AddMessagingModule(options => options.UseNpgsql(postgresConnectionString)); +builder.Services.AddContentModule(options => + options.UseNpgsql( + postgresConnectionString, + o => o.MigrationsHistoryTable("__EFMigrationsHistory", ContentDbContext.SchemaName))); +builder.Services.AddMessagingModule(options => + options.UseNpgsql( + postgresConnectionString, + o => o.MigrationsHistoryTable("__EFMigrationsHistory", MessagingDbContext.SchemaName))); builder.Services.Configure(builder.Configuration.GetRequiredSection(JwtOptions.SectionName)); diff --git a/update-databases.sh b/update-databases.sh index 17a1244..9f90803 100644 --- a/update-databases.sh +++ b/update-databases.sh @@ -1,17 +1,22 @@ #!/bin/bash +dotnet ef database update \ + --project src/Infrastructure/Infrastructure.csproj \ + --startup-project src/Web/Web.csproj \ + --context Hutopy.Infrastructure.Data.ApplicationDbContext \ + --configuration Debug \ + --no-build + dotnet ef database update \ --project src/Web/Web.csproj \ --startup-project src/Web/Web.csproj \ --context Hutopy.Web.Features.Messages.Data.MessagingDbContext \ --configuration Debug \ - --no-build \ - --connection Server=localhost,5432;Database=Hutopy;Uid=sa;Pwd=P@ssword123!; + --no-build - dotnet ef database update \ - --project src/Web/Web.csproj \ - --startup-project src/Web/Web.csproj \ - --context Hutopy.Web.Features.Contents.Data.ContentDbContext \ - --configuration Debug \ - --no-build \ - --connection Server=localhost,5432;Database=Hutopy;Uid=sa;Pwd=P@ssword123!; +dotnet ef database update \ + --project src/Web/Web.csproj \ + --startup-project src/Web/Web.csproj \ + --context Hutopy.Web.Features.Contents.Data.ContentDbContext \ + --configuration Debug \ + --no-build