JiShe.CollectBus/services/JiShe.CollectBus.Domain/Data/CollectBusDbMigrationService.cs

56 lines
1.6 KiB
C#
Raw Normal View History

2024-12-19 16:07:07 +08:00
using System.Collections.Generic;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.Data;
using Volo.Abp.DependencyInjection;
namespace JiShe.CollectBus.Data;
public class CollectBusDbMigrationService : ITransientDependency
{
public ILogger<CollectBusDbMigrationService> Logger { get; set; }
private readonly IDataSeeder _dataSeeder;
private readonly IEnumerable<ICollectBusDbSchemaMigrator> _dbSchemaMigrators;
public CollectBusDbMigrationService(
IDataSeeder dataSeeder,
IEnumerable<ICollectBusDbSchemaMigrator> dbSchemaMigrators)
{
_dataSeeder = dataSeeder;
_dbSchemaMigrators = dbSchemaMigrators;
Logger = NullLogger<CollectBusDbMigrationService>.Instance;
}
public async Task MigrateAsync()
{
Logger.LogInformation("Started database migrations...");
await MigrateDatabaseSchemaAsync();
await SeedDataAsync();
Logger.LogInformation($"Successfully completed host database migrations.");
Logger.LogInformation("Successfully completed all database migrations.");
Logger.LogInformation("You can safely end this process...");
}
private async Task MigrateDatabaseSchemaAsync()
{
Logger.LogInformation(
$"Migrating schema for host database...");
foreach (var migrator in _dbSchemaMigrators)
{
await migrator.MigrateAsync();
}
}
private async Task SeedDataAsync()
{
Logger.LogInformation($"Executing host database seed...");
}
}