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 Logger { get; set; } private readonly IDataSeeder _dataSeeder; private readonly IEnumerable _dbSchemaMigrators; public CollectBusDbMigrationService( IDataSeeder dataSeeder, IEnumerable dbSchemaMigrators) { _dataSeeder = dataSeeder; _dbSchemaMigrators = dbSchemaMigrators; Logger = NullLogger.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..."); } }