Browse Source

Using Migration Environment.

pull/13985/head
maliming 3 years ago
parent
commit
b23ff355c8
  1. 7
      framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/AbpBackgroundJobsModule.cs
  2. 6
      framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs
  3. 38
      framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironmentExtensions.cs
  4. 6
      modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo/Abp/FeatureManagement/AbpFeatureManagementDomainModule.cs
  5. 6
      modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo/Abp/PermissionManagement/AbpPermissionManagementDomainModule.cs
  6. 16
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server.Mongo/Program.cs
  7. 17
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Blazor.Server/Program.cs
  8. 15
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host.Mongo/Program.cs
  9. 16
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Host/Program.cs
  10. 16
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc.Mongo/Program.cs
  11. 17
      templates/app-nolayers/aspnet-core/MyCompanyName.MyProjectName.Mvc/Program.cs
  12. 2
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/DbMigratorHostedService.cs
  13. 21
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyProjectNameDbMigratorModule.cs

7
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<IOptions<AbpBackgroundJobOptions>>().Value;
if (options.IsJobExecutionEnabled)
if (!context.ServiceProvider.IsMigrationEnvironment() &&
context.ServiceProvider.GetRequiredService<IOptions<AbpBackgroundJobOptions>>().Value.IsJobExecutionEnabled)
{
await context.AddBackgroundWorkerAsync<IBackgroundJobWorker>();
}

6
framework/src/Volo.Abp.Data/Volo/Abp/Data/AbpDataMigrationEnvironment.cs

@ -0,0 +1,6 @@
namespace Volo.Abp.Data;
public class AbpDataMigrationEnvironment
{
}

38
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<AbpDataMigrationEnvironment>(environment ?? new AbpDataMigrationEnvironment());
}
public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceCollection services)
{
return services.GetObjectOrNull<IObjectAccessor<AbpDataMigrationEnvironment>>()?.Value;
}
public static bool IsMigrationEnvironment(this IServiceCollection services)
{
return services.GetMigrationEnvironment() != null;
}
public static AbpDataMigrationEnvironment GetMigrationEnvironment(this IServiceProvider serviceProvider)
{
return serviceProvider.GetService<IObjectAccessor<AbpDataMigrationEnvironment>>()?.Value;
}
public static bool IsMigrationEnvironment(this IServiceProvider serviceProvider)
{
return serviceProvider.GetMigrationEnvironment() != null;
}
}

6
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<IOptions<FeatureManagementOptions>>()

6
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<IOptions<PermissionManagementOptions>>()

16
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

17
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

15
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

16
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

16
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

17
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<MyProjectNameModule>();
if (IsMigrateDatabase(args))
{
builder.Services.Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
builder.Services.Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
builder.Services.AddMigrationEnvironment();
}
var app = builder.Build();
await app.InitializeApplicationAsync();

2
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();

21
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<AbpBackgroundJobOptions>(options =>
{
options.IsJobExecutionEnabled = false;
});
Configure<PermissionManagementOptions>(options =>
{
options.IsDynamicPermissionStoreEnabled = false;
options.SaveStaticPermissionsToDatabase = false;
});
Configure<FeatureManagementOptions>(options =>
{
options.IsDynamicFeatureStoreEnabled = false;
options.SaveStaticFeaturesToDatabase = false;
});
}
}

Loading…
Cancel
Save