Ejemplo n.º 1
0
        protected virtual async Task ApplyMigrationAsync(IMongoDatabase database,
                                                         Migration migration, CancellationToken cancellationToken)
        {
            _logger.LogInformation(new
            {
                Message = "Applying migration",
                migration.Version,
                migration.Description,
                DatabaseName
            }.ToString());

            var appliedMigration = await DatabaseStatus.StartMigrationAsync(
                migration, cancellationToken);

            migration.Database = database;
            try
            {
                await migration.UpdateAsync(cancellationToken);
            }
            catch (Exception exception)
            {
                OnMigrationException(migration, exception);
            }
            await DatabaseStatus.CompleteMigrationAsync(
                appliedMigration, cancellationToken);
        }