internal static void CompleteMigration( Action <RepositoryMigration> upsertMigration, RepositoryMigration migrationToComplete) { migrationToComplete.CompleteMigration(); upsertMigration(migrationToComplete); }
private static void ApplyMigration( IRepositoryToMigrate repositoryToMigrate, IRepository repository, RepositoryMigration startedMigration) { try { MigrationHelpers.StartMigration( repository.AddMigration, startedMigration); startedMigration.Migration.Update(repository, repositoryToMigrate); MigrationHelpers.CompleteMigration( repository.UpsertMigration, startedMigration); } catch (Exception exception) { OnUpgradeException( repositoryToMigrate, repository, startedMigration, exception); } }
private static void OnUpgradeException( IRepositoryToMigrate repositoryToMigrate, IRepository repository, RepositoryMigration repositoryMigration, Exception exception) { try { repositoryMigration.Migration.Rollback(repository, repositoryToMigrate); MigrationHelpers.FailMigration( repository.DeleteMigration, repositoryMigration); throw new MigrationException( exception, repositoryMigration.Version); } catch (Exception rollbackEx) { OnRollbackException( repositoryMigration.Migration, rollbackEx); } }
internal static void FailMigration( Action <RepositoryMigration> deleteMigration, RepositoryMigration migrationToComplete) { deleteMigration(migrationToComplete); }
internal static void StartMigration( Action <RepositoryMigration> addMigration, RepositoryMigration migrationToStart) { addMigration(migrationToStart); }