|
|
|
@ -45,12 +45,20 @@ namespace MyCompanyName.MyProjectName.Data |
|
|
|
var tenants = await _tenantRepository.GetListAsync(includeDetails: true); |
|
|
|
|
|
|
|
var migratedDatabaseSchemas = new HashSet<string>(); |
|
|
|
foreach (var tenant in tenants.Where(t => t.ConnectionStrings.Any())) |
|
|
|
foreach (var tenant in tenants) |
|
|
|
{ |
|
|
|
var tenantConnectionStrings = tenant.ConnectionStrings.Select(x => x.Value).ToList(); |
|
|
|
if (!tenant.ConnectionStrings.Any()) |
|
|
|
{ |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
using (_currentTenant.Change(tenant.Id)) |
|
|
|
{ |
|
|
|
if (!migratedDatabaseSchemas.Any() || !migratedDatabaseSchemas.IsSupersetOf(tenantConnectionStrings)) |
|
|
|
var tenantConnectionStrings = tenant.ConnectionStrings |
|
|
|
.Select(x => x.Value) |
|
|
|
.ToList(); |
|
|
|
|
|
|
|
if (!migratedDatabaseSchemas.IsSupersetOf(tenantConnectionStrings)) |
|
|
|
{ |
|
|
|
await MigrateDatabaseSchemaAsync(tenant); |
|
|
|
|
|
|
|
|