public void MigrateUp(bool useAutomaticTransactionManagement) { try { foreach (var version in MigrationLoader.Migrations.Keys) { ApplyMigrationUp(version); } ApplyProfiles(); if (useAutomaticTransactionManagement) { Processor.CommitTransaction(); } VersionLoader.LoadVersionInfo(); } catch (Exception) { if (useAutomaticTransactionManagement) { Processor.RollbackTransaction(); } throw; } }
public void VersionDescriptionMigrationOnlyRunOnceEvenIfExistenceChecksReturnFalse() { var conventions = new MigrationConventions(); var processor = new Mock<IMigrationProcessor>(); var runner = new Mock<IMigrationRunner>(); var asm = Assembly.GetExecutingAssembly(); runner.SetupGet(r => r.Processor).Returns(processor.Object); processor.Setup(p => p.ColumnExists(new TestVersionTableMetaData().SchemaName, TestVersionTableMetaData.TABLENAME, "AppliedOn")).Returns(false); var loader = new VersionLoader(runner.Object, asm, conventions); loader.LoadVersionInfo(); runner.Verify(r => r.Up(loader.VersionDescriptionMigration), Times.Once()); }
public void VersionSchemaMigrationOnlyRunOnceEvenIfExistenceChecksReturnFalse() { var conventions = new MigrationConventions(); var processor = new Mock<IMigrationProcessor>(); var runner = new Mock<IMigrationRunner>(); var asm = Assembly.GetExecutingAssembly(); runner.SetupGet(r => r.Processor).Returns(processor.Object); processor.Setup(p => p.SchemaExists(It.IsAny<string>())).Returns(false); var loader = new VersionLoader(runner.Object, asm, conventions); loader.LoadVersionInfo(); runner.Verify(r => r.Up(loader.VersionSchemaMigration), Times.Once()); }