feat: 先搞一个dbmigrator凑合用
This commit is contained in:
51
shared/KonSoft.Shared.DbMigrator/DbMigratorHostedService.cs
Normal file
51
shared/KonSoft.Shared.DbMigrator/DbMigratorHostedService.cs
Normal file
@ -0,0 +1,51 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using Serilog;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using KonSoft.Shared.DbMigrator.Data;
|
||||
using Volo.Abp;
|
||||
using Volo.Abp.Data;
|
||||
|
||||
namespace KonSoft.Shared.DbMigrator;
|
||||
|
||||
public class DbMigratorHostedService : IHostedService
|
||||
{
|
||||
private readonly IHostApplicationLifetime _hostApplicationLifetime;
|
||||
private readonly IConfiguration _configuration;
|
||||
|
||||
public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration)
|
||||
{
|
||||
_hostApplicationLifetime = hostApplicationLifetime;
|
||||
_configuration = configuration;
|
||||
}
|
||||
|
||||
public async Task StartAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
using (var application = await AbpApplicationFactory.CreateAsync<KonSoftSharedDbMigratorModule>(options =>
|
||||
{
|
||||
options.Services.ReplaceConfiguration(_configuration);
|
||||
options.UseAutofac();
|
||||
options.Services.AddLogging(c => c.AddSerilog());
|
||||
options.AddDataMigrationEnvironment();
|
||||
}))
|
||||
{
|
||||
await application.InitializeAsync();
|
||||
|
||||
await application
|
||||
.ServiceProvider
|
||||
.GetRequiredService<DbMigrationService>()
|
||||
.MigrateAsync();
|
||||
|
||||
await application.ShutdownAsync();
|
||||
|
||||
_hostApplicationLifetime.StopApplication();
|
||||
}
|
||||
}
|
||||
|
||||
public Task StopAsync(CancellationToken cancellationToken)
|
||||
{
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user