56 lines
1.6 KiB
C#
56 lines
1.6 KiB
C#
|
|
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...");
|
|||
|
|
}
|
|||
|
|
}
|