diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs index cde75d4ca7..bf0a315c93 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/Data/MyProjectNameDbMigrationService.cs @@ -1,5 +1,4 @@ -using System; -using System.Linq; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; @@ -15,18 +14,18 @@ namespace MyCompanyName.MyProjectName.Data public ILogger Logger { get; set; } private readonly IDataSeeder _dataSeeder; - private readonly IMyProjectNameDbSchemaMigrator _dbSchemaMigrator; + private readonly IEnumerable _dbSchemaMigrators; private readonly ITenantRepository _tenantRepository; private readonly ICurrentTenant _currentTenant; public MyProjectNameDbMigrationService( IDataSeeder dataSeeder, - IMyProjectNameDbSchemaMigrator dbSchemaMigrator, + IEnumerable dbSchemaMigrators, ITenantRepository tenantRepository, ICurrentTenant currentTenant) { _dataSeeder = dataSeeder; - _dbSchemaMigrator = dbSchemaMigrator; + _dbSchemaMigrators = dbSchemaMigrators; _tenantRepository = tenantRepository; _currentTenant = currentTenant; @@ -59,7 +58,11 @@ namespace MyCompanyName.MyProjectName.Data private async Task MigrateHostDatabaseAsync() { Logger.LogInformation("Migrating host database schema..."); - await _dbSchemaMigrator.MigrateAsync(); + + foreach (var migrator in _dbSchemaMigrators) + { + await migrator.MigrateAsync(); + } Logger.LogInformation("Executing host database seed..."); await _dataSeeder.SeedAsync(); @@ -70,9 +73,14 @@ namespace MyCompanyName.MyProjectName.Data private async Task MigrateTenantDatabasesAsync(Tenant tenant) { Logger.LogInformation($"Migrating schema for {tenant.Name} database..."); - await _dbSchemaMigrator.MigrateAsync(); + + foreach (var migrator in _dbSchemaMigrators) + { + await migrator.MigrateAsync(); + } Logger.LogInformation($"Executing {tenant.Name} tenant database seed..."); + await _dataSeeder.SeedAsync(tenant.Id); } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs index 71bd4e9059..752e0e18b3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/EntityFrameworkCore/EntityFrameworkCoreMyProjectNameDbSchemaMigrator.cs @@ -7,7 +7,6 @@ using Volo.Abp.DependencyInjection; namespace MyCompanyName.MyProjectName.EntityFrameworkCore { - [Dependency(ReplaceServices = true)] public class EntityFrameworkCoreMyProjectNameDbSchemaMigrator : IMyProjectNameDbSchemaMigrator, ITransientDependency {