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 d1edf807a7..5fc3b8d179 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 @@ -37,8 +37,11 @@ namespace MyCompanyName.MyProjectName.Data { Logger.LogInformation("Started database migrations..."); - await MigrateDatabaseAsync(); - + await MigrateDatabaseSchemaAsync(); + await SeedDataAsync(); + + Logger.LogInformation($"Successfully completed host database migrations."); + var tenants = await _tenantRepository.GetListAsync(includeDetails: true); var migratedDatabases = new HashSet(); @@ -50,32 +53,35 @@ namespace MyCompanyName.MyProjectName.Data { using (_currentTenant.Change(tenant.Id)) { - await MigrateDatabaseAsync(tenant); + await MigrateDatabaseSchemaAsync(tenant); } - tenantConnectionStrings.ForEach(x => migratedDatabases.Add(x)); + migratedDatabases.AddIfNotContains(tenantConnectionStrings); } + + await SeedDataAsync(tenant); + + Logger.LogInformation($"Successfully completed {tenant.Name} tenant database migrations."); } Logger.LogInformation("Successfully completed database migrations."); } - private async Task MigrateDatabaseAsync(Tenant tenant = null) + private async Task MigrateDatabaseSchemaAsync(Tenant tenant = null) { - var migrateName = tenant == null ? "host" : tenant.Name + " tenant"; - - Logger.LogInformation($"Migrating schema for {migrateName} database..."); + Logger.LogInformation($"Migrating schema for {(tenant == null ? "host" : tenant.Name + " tenant")} database..."); foreach (var migrator in _dbSchemaMigrators) { await migrator.MigrateAsync(); } - - Logger.LogInformation($"Executing {migrateName} database seed..."); - + } + + private async Task SeedDataAsync(Tenant tenant = null) + { + Logger.LogInformation($"Executing {(tenant == null ? "host" : tenant.Name + " tenant")} database seed..."); + await _dataSeeder.SeedAsync(tenant?.Id); - - Logger.LogInformation($"Successfully completed {migrateName} database migrations."); } } } \ No newline at end of file