private void MigrateToIsolatedDirectory(DatabaseLayout directoryLayout, DatabaseLayout migrationLayout, string versionToMigrateFrom) { try { foreach (StoreMigrationParticipant participant in _participants) { ProgressReporter progressReporter = _progressMonitor.startSection(participant.Name); participant.Migrate(directoryLayout, migrationLayout, progressReporter, versionToMigrateFrom, _upgradableDatabase.currentVersion()); progressReporter.Completed(); } } catch (Exception e) when(e is IOException || e is UncheckedIOException) { throw new UnableToUpgradeException("Failure doing migration", e); } }