From 1c3ef4f05f51d32adcabe228ef379b03c2adff0c Mon Sep 17 00:00:00 2001 From: maliming Date: Fri, 9 Sep 2022 17:34:28 +0800 Subject: [PATCH 1/5] Disable dynamic permissions and features during migration. --- .../Program.cs | 16 ++++++++++++++++ .../Program.cs | 16 ++++++++++++++++ .../Program.cs | 16 ++++++++++++++++ .../Program.cs | 16 ++++++++++++++++ .../Program.cs | 16 ++++++++++++++++ .../Program.cs | 16 ++++++++++++++++ .../MyProjectNameDbMigratorModule.cs | 19 ++++++++++++++++++- 7 files changed, 114 insertions(+), 1 deletion(-) diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs index d922551429..d4139fb375 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs @@ -2,6 +2,8 @@ using MyCompanyName.MyProjectName.Blazor.Server; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -36,6 +38,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs index 8787d01b8e..033e0df78b 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs @@ -3,6 +3,8 @@ using MyCompanyName.MyProjectName.Blazor.Server; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -42,6 +44,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs index d09fba6395..5fafe94bc9 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs @@ -1,6 +1,8 @@ using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -35,6 +37,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs index c762c9b245..158edc894d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs @@ -2,6 +2,8 @@ using System; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -41,6 +43,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs index ac3634377d..d8529fffec 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs @@ -1,6 +1,8 @@ using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -36,6 +38,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs index 8a6393168c..90d099439f 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs @@ -2,6 +2,8 @@ using System; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; +using Volo.Abp.FeatureManagement; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName; @@ -42,6 +44,20 @@ public class Program .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); + if (IsMigrateDatabase(args)) + { + builder.Services.Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + builder.Services.Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); + } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs index 51bc87cd52..f0c746f0aa 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs @@ -1,7 +1,9 @@ using MyCompanyName.MyProjectName.EntityFrameworkCore; using Volo.Abp.Autofac; using Volo.Abp.BackgroundJobs; +using Volo.Abp.FeatureManagement; using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName.DbMigrator; @@ -14,6 +16,21 @@ public class MyProjectNameDbMigratorModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => options.IsJobExecutionEnabled = false); + Configure(options => + { + options.IsJobExecutionEnabled = false; + }); + + Configure(options => + { + options.IsDynamicPermissionStoreEnabled = false; + options.SaveStaticPermissionsToDatabase = false; + }); + + Configure(options => + { + options.IsDynamicFeatureStoreEnabled = false; + options.SaveStaticFeaturesToDatabase = false; + }); } } From b23ff355c8f262ed3df43853f614c0cffe4e9be3 Mon Sep 17 00:00:00 2001 From: maliming Date: Sun, 11 Sep 2022 10:39:50 +0800 Subject: [PATCH 2/5] Using Migration Environment. --- .../BackgroundJobs/AbpBackgroundJobsModule.cs | 7 ++-- .../Abp/Data/AbpDataMigrationEnvironment.cs | 6 +++ .../AbpDataMigrationEnvironmentExtensions.cs | 38 +++++++++++++++++++ .../AbpFeatureManagementDomainModule.cs | 6 +++ .../AbpPermissionManagementDomainModule.cs | 6 +++ .../Program.cs | 16 +------- .../Program.cs | 17 +-------- .../Program.cs | 15 +------- .../Program.cs | 16 +------- .../Program.cs | 16 +------- .../Program.cs | 17 +-------- .../DbMigratorHostedService.cs | 2 + .../MyProjectNameDbMigratorModule.cs | 21 ---------- 13 files changed, 74 insertions(+), 109 deletions(-) create mode 100644 framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs create mode 100644 framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs index 6c09a80f73..1c8daf3f82 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs @@ -2,6 +2,7 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; using Volo.Abp.BackgroundWorkers; +using Volo.Abp.Data; using Volo.Abp.DistributedLocking; using Volo.Abp.Guids; using Volo.Abp.Modularity; @@ -19,10 +20,10 @@ namespace Volo.Abp.BackgroundJobs; )] public class AbpBackgroundJobsModule : AbpModule { - public async override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) + public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { - var options = context.ServiceProvider.GetRequiredService>().Value; - if (options.IsJobExecutionEnabled) + if (!context.ServiceProvider.IsMigrationEnvironment() && + context.ServiceProvider.GetRequiredService>().Value.IsJobExecutionEnabled) { await context.AddBackgroundWorkerAsync(); } diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs new file mode 100644 index 0000000000..cdbdf13eb0 --- /dev/null +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs @@ -0,0 +1,6 @@ +namespace Volo.Abp.Data; + +public class AbpDataMigrationEnvironment +{ + +} diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs new file mode 100644 index 0000000000..050ee2127e --- /dev/null +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs @@ -0,0 +1,38 @@ +using System; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.Data; + +public static class AbpDataMigrationEnvironmentExtensions +{ + public static void AddMigrationEnvironment(this AbpApplicationCreationOptions options, AbpDataMigrationEnvironment environment = null) + { + options.Services.AddMigrationEnvironment(environment ?? new AbpDataMigrationEnvironment()); + } + + public static void AddMigrationEnvironment(this IServiceCollection services, AbpDataMigrationEnvironment environment = null) + { + services.AddObjectAccessor(environment ?? new AbpDataMigrationEnvironment()); + } + + public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceCollection services) + { + return services.GetObjectOrNull>()?.Value; + } + + public static bool IsMigrationEnvironment(this IServiceCollection services) + { + return services.GetMigrationEnvironment() != null; + } + + public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceProvider serviceProvider) + { + return serviceProvider.GetService>()?.Value; + } + + public static bool IsMigrationEnvironment(this IServiceProvider serviceProvider) + { + return serviceProvider.GetMigrationEnvironment() != null; + } +} diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs index 74cd00cffb..015df09cdc 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs @@ -7,6 +7,7 @@ using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Polly; using Volo.Abp.Caching; +using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.FeatureManagement.Localization; using Volo.Abp.Features; @@ -62,6 +63,11 @@ public class AbpFeatureManagementDomainModule : AbpModule private void InitializeDynamicFeatures(ApplicationInitializationContext context) { + if (context.ServiceProvider.IsMigrationEnvironment()) + { + return; + } + var options = context .ServiceProvider .GetRequiredService>() diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs index ddf5be479e..67c438582e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs @@ -9,6 +9,7 @@ using Polly; using Volo.Abp.Authorization; using Volo.Abp.Authorization.Permissions; using Volo.Abp.Caching; +using Volo.Abp.Data; using Volo.Abp.DependencyInjection; using Volo.Abp.Domain; using Volo.Abp.Json; @@ -45,6 +46,11 @@ public class AbpPermissionManagementDomainModule : AbpModule private void InitializeDynamicPermissions(ApplicationInitializationContext context) { + if (context.ServiceProvider.IsMigrationEnvironment()) + { + return; + } + var options = context .ServiceProvider .GetRequiredService>() diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs index d4139fb375..36ef778848 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs @@ -1,9 +1,7 @@ -using MyCompanyName.MyProjectName.Blazor.Server; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -40,17 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs index 033e0df78b..542b860add 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs @@ -1,10 +1,7 @@ -using System; -using MyCompanyName.MyProjectName.Blazor.Server; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -46,17 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs index 5fafe94bc9..36ef778848 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs @@ -1,8 +1,7 @@ using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -39,17 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs index 158edc894d..542b860add 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs @@ -1,9 +1,7 @@ -using System; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -45,17 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs index d8529fffec..36ef778848 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs @@ -1,9 +1,7 @@ using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; - +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -40,17 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs index 90d099439f..542b860add 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs @@ -1,10 +1,7 @@ -using System; using MyCompanyName.MyProjectName.Data; using Serilog; using Serilog.Events; -using Volo.Abp.FeatureManagement; -using Volo.Abp.PermissionManagement; - +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName; @@ -46,17 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - builder.Services.Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); + builder.Services.AddMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs index 0b31a64ddd..827bd31505 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs @@ -6,6 +6,7 @@ using Microsoft.Extensions.Hosting; using MyCompanyName.MyProjectName.Data; using Serilog; using Volo.Abp; +using Volo.Abp.Data; namespace MyCompanyName.MyProjectName.DbMigrator; @@ -27,6 +28,7 @@ public class DbMigratorHostedService : IHostedService options.Services.ReplaceConfiguration(_configuration); options.UseAutofac(); options.Services.AddLogging(c => c.AddSerilog()); + options.AddMigrationEnvironment(); })) { await application.InitializeAsync(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs index f0c746f0aa..06c4b3d1b5 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs @@ -1,9 +1,6 @@ using MyCompanyName.MyProjectName.EntityFrameworkCore; using Volo.Abp.Autofac; -using Volo.Abp.BackgroundJobs; -using Volo.Abp.FeatureManagement; using Volo.Abp.Modularity; -using Volo.Abp.PermissionManagement; namespace MyCompanyName.MyProjectName.DbMigrator; @@ -14,23 +11,5 @@ namespace MyCompanyName.MyProjectName.DbMigrator; )] public class MyProjectNameDbMigratorModule : AbpModule { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.IsJobExecutionEnabled = false; - }); - Configure(options => - { - options.IsDynamicPermissionStoreEnabled = false; - options.SaveStaticPermissionsToDatabase = false; - }); - - Configure(options => - { - options.IsDynamicFeatureStoreEnabled = false; - options.SaveStaticFeaturesToDatabase = false; - }); - } } From d0c31b220a6da7e37ef1a82179b9bab054255632 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 13 Sep 2022 17:04:29 +0800 Subject: [PATCH 3/5] Change default options in migration environment. --- .../BackgroundJobs/AbpBackgroundJobsModule.cs | 14 ++++++++++++-- .../AbpFeatureManagementDomainModule.cs | 14 +++++++++----- .../AbpPermissionManagementDomainModule.cs | 17 ++++++++++++----- 3 files changed, 33 insertions(+), 12 deletions(-) diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs index 1c8daf3f82..7e5910f938 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs @@ -20,10 +20,20 @@ namespace Volo.Abp.BackgroundJobs; )] public class AbpBackgroundJobsModule : AbpModule { + public override void ConfigureServices(ServiceConfigurationContext context) + { + if (context.Services.IsMigrationEnvironment()) + { + Configure(options => + { + options.IsJobExecutionEnabled = false; + }); + } + } + public override async Task OnApplicationInitializationAsync(ApplicationInitializationContext context) { - if (!context.ServiceProvider.IsMigrationEnvironment() && - context.ServiceProvider.GetRequiredService>().Value.IsJobExecutionEnabled) + if (context.ServiceProvider.GetRequiredService>().Value.IsJobExecutionEnabled) { await context.AddBackgroundWorkerAsync(); } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs index 015df09cdc..06aa79daca 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs @@ -40,6 +40,15 @@ public class AbpFeatureManagementDomainModule : AbpModule { options.MapCodeNamespace("AbpFeatureManagement", typeof(AbpFeatureManagementResource)); }); + + if (context.Services.IsMigrationEnvironment()) + { + Configure(options => + { + options.SaveStaticFeaturesToDatabase = false; + options.IsDynamicFeatureStoreEnabled = false; + }); + } } private readonly CancellationTokenSource _cancellationTokenSource = new(); @@ -63,11 +72,6 @@ public class AbpFeatureManagementDomainModule : AbpModule private void InitializeDynamicFeatures(ApplicationInitializationContext context) { - if (context.ServiceProvider.IsMigrationEnvironment()) - { - return; - } - var options = context .ServiceProvider .GetRequiredService>() diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs index 67c438582e..a94daf5926 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs @@ -27,6 +27,18 @@ public class AbpPermissionManagementDomainModule : AbpModule { private readonly CancellationTokenSource _cancellationTokenSource = new(); + public override void ConfigureServices(ServiceConfigurationContext context) + { + if (context.Services.IsMigrationEnvironment()) + { + Configure(options => + { + options.SaveStaticPermissionsToDatabase = false; + options.IsDynamicPermissionStoreEnabled = false; + }); + } + } + public override void OnApplicationInitialization(ApplicationInitializationContext context) { AsyncHelper.RunSync(() => OnApplicationInitializationAsync(context)); @@ -46,11 +58,6 @@ public class AbpPermissionManagementDomainModule : AbpModule private void InitializeDynamicPermissions(ApplicationInitializationContext context) { - if (context.ServiceProvider.IsMigrationEnvironment()) - { - return; - } - var options = context .ServiceProvider .GetRequiredService>() From 0aca30ae71c6eafc4bd03e6fba8d905ea690f0b4 Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 13 Sep 2022 17:38:02 +0800 Subject: [PATCH 4/5] Rename. --- .../Data/AbpDataMigrationEnvironmentExtensions.cs | 14 +++++++------- .../Program.cs | 2 +- .../Program.cs | 2 +- .../Program.cs | 2 +- .../MyCompanyName.MyProjectName.Host/Program.cs | 2 +- .../Program.cs | 2 +- .../MyCompanyName.MyProjectName.Mvc/Program.cs | 2 +- .../DbMigratorHostedService.cs | 2 +- 8 files changed, 14 insertions(+), 14 deletions(-) diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs index 050ee2127e..ca47c86577 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs @@ -6,33 +6,33 @@ namespace Volo.Abp.Data; public static class AbpDataMigrationEnvironmentExtensions { - public static void AddMigrationEnvironment(this AbpApplicationCreationOptions options, AbpDataMigrationEnvironment environment = null) + public static void AddDataMigrationEnvironment(this AbpApplicationCreationOptions options, AbpDataMigrationEnvironment environment = null) { - options.Services.AddMigrationEnvironment(environment ?? new AbpDataMigrationEnvironment()); + options.Services.AddDataMigrationEnvironment(environment ?? new AbpDataMigrationEnvironment()); } - public static void AddMigrationEnvironment(this IServiceCollection services, AbpDataMigrationEnvironment environment = null) + public static void AddDataMigrationEnvironment(this IServiceCollection services, AbpDataMigrationEnvironment environment = null) { services.AddObjectAccessor(environment ?? new AbpDataMigrationEnvironment()); } - public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceCollection services) + public static AbpDataMigrationEnvironment GetDataMigrationEnvironment(this IServiceCollection services) { return services.GetObjectOrNull>()?.Value; } public static bool IsMigrationEnvironment(this IServiceCollection services) { - return services.GetMigrationEnvironment() != null; + return services.GetDataMigrationEnvironment() != null; } - public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceProvider serviceProvider) + public static AbpDataMigrationEnvironment GetDataMigrationEnvironment(this IServiceProvider serviceProvider) { return serviceProvider.GetService>()?.Value; } public static bool IsMigrationEnvironment(this IServiceProvider serviceProvider) { - return serviceProvider.GetMigrationEnvironment() != null; + return serviceProvider.GetDataMigrationEnvironment() != null; } } diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs index 36ef778848..fb3c83f100 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs @@ -38,7 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs index 542b860add..ec8097460d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs @@ -43,7 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs index 36ef778848..fb3c83f100 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs @@ -38,7 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs index 542b860add..ec8097460d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs @@ -43,7 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs index 36ef778848..fb3c83f100 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs @@ -38,7 +38,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs index 542b860add..ec8097460d 100644 --- a/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs +++ b/templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs @@ -43,7 +43,7 @@ public class Program await builder.AddApplicationAsync(); if (IsMigrateDatabase(args)) { - builder.Services.AddMigrationEnvironment(); + builder.Services.AddDataMigrationEnvironment(); } var app = builder.Build(); await app.InitializeApplicationAsync(); diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs index 827bd31505..92e723ba59 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs @@ -28,7 +28,7 @@ public class DbMigratorHostedService : IHostedService options.Services.ReplaceConfiguration(_configuration); options.UseAutofac(); options.Services.AddLogging(c => c.AddSerilog()); - options.AddMigrationEnvironment(); + options.AddDataMigrationEnvironment(); })) { await application.InitializeAsync(); From e390a7bf6c63422f6df78764e65105f8447c72fa Mon Sep 17 00:00:00 2001 From: maliming Date: Tue, 13 Sep 2022 17:45:53 +0800 Subject: [PATCH 5/5] Rename. --- .../Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs | 2 +- .../Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs | 4 ++-- .../Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs | 2 +- .../AbpPermissionManagementDomainModule.cs | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs index 7e5910f938..08cc66130c 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs @@ -22,7 +22,7 @@ public class AbpBackgroundJobsModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { - if (context.Services.IsMigrationEnvironment()) + if (context.Services.IsDataMigrationEnvironment()) { Configure(options => { diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs index ca47c86577..29907b9385 100644 --- a/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs @@ -21,7 +21,7 @@ public static class AbpDataMigrationEnvironmentExtensions return services.GetObjectOrNull>()?.Value; } - public static bool IsMigrationEnvironment(this IServiceCollection services) + public static bool IsDataMigrationEnvironment(this IServiceCollection services) { return services.GetDataMigrationEnvironment() != null; } @@ -31,7 +31,7 @@ public static class AbpDataMigrationEnvironmentExtensions return serviceProvider.GetService>()?.Value; } - public static bool IsMigrationEnvironment(this IServiceProvider serviceProvider) + public static bool IsDataMigrationEnvironment(this IServiceProvider serviceProvider) { return serviceProvider.GetDataMigrationEnvironment() != null; } diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs index 06aa79daca..ba8105cb88 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs @@ -41,7 +41,7 @@ public class AbpFeatureManagementDomainModule : AbpModule options.MapCodeNamespace("AbpFeatureManagement", typeof(AbpFeatureManagementResource)); }); - if (context.Services.IsMigrationEnvironment()) + if (context.Services.IsDataMigrationEnvironment()) { Configure(options => { diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs index a94daf5926..71b42a20fb 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs @@ -29,7 +29,7 @@ public class AbpPermissionManagementDomainModule : AbpModule public override void ConfigureServices(ServiceConfigurationContext context) { - if (context.Services.IsMigrationEnvironment()) + if (context.Services.IsDataMigrationEnvironment()) { Configure(options => {