Beispiel #1
0
 public RuntimeContext(IDbConnection connection, IDbTransaction transaction, IDbCommandExecutor executor, IProviderMetadata providerMetadata, IMigrationStepMetadata stepMetadata)
     : base(providerMetadata, stepMetadata)
 {
     _connection = connection;
     _transaction = transaction;
     _executor = executor;
 }
 private static IMigrationStep FakeMigrationStep(IMigrationStepMetadata metadata)
 {
     IMigrationStep step = A.Fake<IMigrationStep>();
     A.CallTo(() => step.Metadata).Returns(metadata);
     A.CallTo(() => step.Report(A<IMigrationContext>._)).Returns(A.Fake<IMigrationReport>());
     return step;
 }
        public void Update(IMigrationStepMetadata metadata, IDbConnection connection, IDbTransaction transaction, IDbCommandExecutor commandExecutor)
        {
            foreach (IMigrationMetadata migrationMetadata in metadata.Migrations)
            {
                Debug.Assert(migrationMetadata.ModuleName == metadata.ModuleName, "The migration module name must correspond to the module name of the scheduled migration step.");
                if (metadata.Direction == MigrationDirection.Up)
                {
                    _history.Insert(migrationMetadata.Timestamp, metadata.ModuleName, migrationMetadata.Tag);
                }
                else
                {
                    Debug.Assert(metadata.Direction == MigrationDirection.Down);
                    _history.Delete(migrationMetadata.Timestamp, metadata.ModuleName);
                }
            }

            StoreChanges(connection, transaction, commandExecutor);
        }
        public void TestCases(IEnumerable<IMigrationMetadata> importedMigrations, IEnumerable<IAggregateMigrationMetadata> importedAggregateMigrations, IEnumerable<IMigrationMetadata> executedMigrations, IMigrationStepMetadata[] expectedSteps)
        {
            var importer = A.Fake<IMigrationImporter>();
            var versioning = A.Fake<IVersioning>();
            IReadOnlyCollection<ImportedMigration> ignoredMigrations;
            IReadOnlyCollection<ImportedAggregateMigration> ignoredAggregateMigrations;
            A.CallTo(() => importer.ImportAll(out ignoredMigrations, out ignoredAggregateMigrations)).AssignsOutAndRefParameters(
                importedMigrations.Select(m => new ImportedMigration(A.Fake<IMigration>(), m, false)).ToList(),
                importedAggregateMigrations.Select(m => new ImportedAggregateMigration(A.Fake<IMigration>(), m)).ToList());
            A.CallTo(() => versioning.ExecutedMigrations).Returns(executedMigrations);
            MigrationBatchPreparer preparer = new MigrationBatchPreparer(importer, versioning, A.Fake<IRuntimeConfiguration>());

            var batch = preparer.Prepare(long.MaxValue, new MigrationOptions());

            Assert.AreEqual(expectedSteps.Length, batch.Steps.Count, "Unexpected count of steps.");
            for (int i = 0; i < batch.Steps.Count; i++)
            {
                CollectionAssert.AreEqual(expectedSteps[i].Migrations.Select(GetMigrationDescription).ToArray(), batch.Steps[i].Migrations.Select(GetMigrationDescription).ToArray(), "Unexpected migrations in step {0}.", i);
            }
        }
Beispiel #5
0
 public void Update(IMigrationStepMetadata metadata, IDbConnection connection, IDbTransaction transaction, IDbCommandExecutor commandExecutor)
 {
     PersistedVersioning versioning = GetPersistedVersioning(connection, transaction, commandExecutor);
     versioning.Update(metadata, connection, transaction, commandExecutor);
 }
 /// <summary>
 /// Initializes a new instance.
 /// </summary>
 public MigrationEventArgs(IMigrationStepMetadata metadata)
 {
     _metadata = metadata;
 }
 public BootstrapMigrationStep(IMigration migration, IMigrationStepMetadata stepMetadata)
 {
     _migration = migration;
     _stepMetadata = stepMetadata;
 }
Beispiel #8
0
 public MigrationStep(IMigration migration, IMigrationStepMetadata metadata)
     : base(migration, metadata)
 {
 }
Beispiel #9
0
 public void Update(IMigrationStepMetadata metadata, IDbConnection connection, IDbTransaction transaction,
                    IDbCommandExecutor commandExecutor)
 {
     // nothing to do
 }
Beispiel #10
0
 public MigrationContext(IProviderMetadata providerMetadata, IMigrationStepMetadata stepMetadata)
 {
     _providerMetadata = providerMetadata;
     _stepMetadata = stepMetadata;
 }