public void ApplySingleDataMigration() { var configuration = new Rock.Migrations.Configuration(); var migrator = new DbMigrator(configuration); var pendingMigrationNames = migrator.GetPendingMigrations(); Assert.AreNotEqual(0, pendingMigrationNames.Count(), "There is no pending migration."); Assert.AreEqual(1, pendingMigrationNames.Count(), "There is more than one pending migration."); var pendingMigrationName = pendingMigrationNames.First(); Debug.Print($"Applying migration: { pendingMigrationName }"); migrator.Update(); }
public void RollbackSingleDataMigration() { var configuration = new Rock.Migrations.Configuration(); var migrator = new DbMigrator(configuration); // Get the second-last migration to be applied. // Migrations are returned in order of last-applied first. var targetMigrationName = migrator.GetDatabaseMigrations().Skip(1).Take(1).FirstOrDefault(); Debug.Print($"Rolling back to target migration \"{ targetMigrationName }\"..."); // Update to the second-last migration. migrator.Update(targetMigrationName); var newLastMigrationName = migrator.GetDatabaseMigrations().FirstOrDefault(); Assert.AreEqual(targetMigrationName, newLastMigrationName); }