public AppliedMigration(Migration migration) { Version = migration.Version; StartedOn = DateTime.Now; Description = migration.Description; FailedMigrations = new List<DocumentMigrationError>(); }
public override bool Exclude(Migration migration) { if (migration == null) return false; return migration.GetType() .GetCustomAttributes(true) .OfType<ExperimentalAttribute>() .Any(); }
public virtual AppliedMigration StartMigration(Migration migration) { var appliedMigration = new AppliedMigration(migration); long docCount = 0; if (migration is CollectionMigration) { var collection = ((CollectionMigration)migration).GetCollection(); docCount = collection.Count(); } appliedMigration.TotalCount = docCount; GetMigrationsCollection().Insert(appliedMigration); return appliedMigration; }
protected virtual void OnMigrationException(Migration migration, Exception exception) { var message = new { Message = "Migration failed to be applied: " + exception.Message, migration.Version, Name = migration.GetType(), migration.Description, DatabaseName = Database.Name }; Console.WriteLine(message); throw new MigrationException(message.ToString(), exception); }
protected virtual void ApplyMigration(Migration migration) { Console.WriteLine(new {Message = "Applying migration", migration.Version, migration.Description, DatabaseName = Database.Name}); var appliedMigration = DatabaseStatus.StartMigration(migration); migration.Database = Database; try { migration.Update(); } catch (Exception exception) { OnMigrationException(migration, exception); } DatabaseStatus.CompleteMigration(appliedMigration); }
protected virtual void ApplyMigration(Migration migration) { Trace.TraceInformation("Applying migration \"{0}\" for version {1} to database \"{2}\".", migration.Description, migration.Version, Database.Name); migration.Database = Database; var appliedMigration = DatabaseStatus.StartMigration(migration); try { var m = migration as CollectionMigration; if (m != null) { m.MigrationErrorCallback = MigrationErrorCallback; m.MigrationProgressCallback = MigrationProgressCallback; } migration.Update(); } catch (Exception exception) { OnMigrationException(migration, exception); } DatabaseStatus.CompleteMigration(appliedMigration); }
public virtual AppliedMigration StartMigration(Migration migration) { var appliedMigration = new AppliedMigration(migration); GetMigrationsCollection().Insert(appliedMigration); return appliedMigration; }
protected virtual void OnMigrationException(Migration migration, Exception exception) { string message = String.Format("Failed applying migration \"{0}\" for version {1} to database \"{2}\": {3}", migration.Description, migration.Version, Database.Name, exception.Message); Trace.TraceError(message); throw new MigrationException(message, exception); }
private void MigrationErrorCallback(Migration migration, DocumentMigrationError documentMigrationError) { DatabaseStatus.AddMigrationError(migration.Version, documentMigrationError); }
private void MigrationProgressCallback(Migration migration, string id) { DatabaseStatus.SetMigrationLastId(migration.Version, id); }
public AppliedMigration(Migration migration) { Version = migration.Version; StartedOn = DateTime.Now; Description = migration.Description; }