コード例 #1
0
            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();
            }
コード例 #2
0
            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);
            }