private void RemoveMigration(IMigration migration, MigrationAttribute attr) { // we're removing this one _logger.MigrateDown(Current, migration.Name); if (! DryRun) { migration.Down(); _provider.MigrationUnApplied(attr.Version); _provider.Commit(); migration.AfterDown(); } }
private void RemoveMigration(IMigration migration, MigrationAttribute attr) { // we're removing this one _logger.MigrateDown(Current, migration.Name); if (!DryRun) { migration.Down(); _provider.MigrationUnApplied(attr.Version); _provider.Commit(); migration.AfterDown(); } }
/// <summary> /// Performs the <see cref="IMigration.Down"/> action on the <paramref name="migration"/>. /// </summary> /// <param name="migration"></param> private void Downgrade(IMigration migration) { try { migration.Down(); if (migration.ShouldDeleteMigration) { DeleteMigration(migration); } } catch (Exception) { // TODO: log and/or roll up the actual sql that was used to perform the downgrade throw; } }
void RemoveMigration(IMigration migration, MigrationAttribute attr) { // we're removing this one _logger.MigrateDown(Current, migration.Name); if (!DryRun) { var tProvider = _provider as TransformationProvider; if (tProvider != null) { tProvider.CurrentMigration = migration; } migration.Down(); _provider.MigrationUnApplied(attr.Version, attr.Scope); _provider.Commit(); migration.AfterDown(); } }
/// <summary> /// Applies the specified <paramref name="migration"/> within the /// specified <paramref name="context"/>. /// </summary> /// <param name="migration">The migration to apply.</param> /// <param name="direction">The migration direction.</param> /// <param name="context">The context.</param> protected virtual void ApplyMigration(IMigration migration, MigrationDirection direction, MigrationContext context) { // // Notify environment // var beforeArgs = new BeforeMigrationEventArgs(migration.GetVersion(), migration, direction); OnBeforeMigration(beforeArgs); if (beforeArgs.Cancel) throw new Exception("environment cancelled migration"); // // Generate model // Database model = new Database(context); // // Send SQL statements on flush notification // model.FlushChanges += delegate(object sender, EventArgs e) { foreach (string sql in context.SqlProvider.GenerateSqlCommands(model)) { // Notify environment var beforeSqlArgs = new BeforeSqlEventArgs(sql); OnBeforeSql(beforeSqlArgs); if (beforeSqlArgs.Cancel) throw new Exception("environment cancelled migration"); // Execute SqlProcessor.ProcessMigrationStatement(context, sql); // Notify environment var afterSqlArgs = new AfterSqlEventArgs(sql, true); OnAfterSql(afterSqlArgs); } }; // // Run migration // if (direction == MigrationDirection.Up) migration.Up(model); else migration.Down(model); // // Flush changes // model.Flush(); // // Memorize migration // HistoryRepository.AddItem(context, new MigrationHistoryItem() { Date = DateTime.Now, Direction = direction, Version = migration.GetVersion() } ); // // Notify enviroment // var afterArgs = new AfterMigrationEventArgs(migration.GetVersion(), migration, direction, true); OnAfterMigration(afterArgs); }
/// <summary> /// Applies the specified <paramref name="migration"/> within the /// specified <paramref name="context"/>. /// </summary> /// <param name="migration">The migration to apply.</param> /// <param name="direction">The migration direction.</param> /// <param name="context">The context.</param> protected virtual void ApplyMigration(IMigration migration, MigrationDirection direction, MigrationContext context) { // // Notify environment // var beforeArgs = new BeforeMigrationEventArgs(migration.GetVersion(), migration, direction); OnBeforeMigration(beforeArgs); if (beforeArgs.Cancel) { throw new Exception("environment cancelled migration"); } // // Generate model // Database model = new Database(context); // // Send SQL statements on flush notification // model.FlushChanges += delegate(object sender, EventArgs e) { foreach (string sql in context.SqlProvider.GenerateSqlCommands(model)) { // Notify environment var beforeSqlArgs = new BeforeSqlEventArgs(sql); OnBeforeSql(beforeSqlArgs); if (beforeSqlArgs.Cancel) { throw new Exception("environment cancelled migration"); } // Execute SqlProcessor.ProcessMigrationStatement(context, sql); // Notify environment var afterSqlArgs = new AfterSqlEventArgs(sql, true); OnAfterSql(afterSqlArgs); } }; // // Run migration // if (direction == MigrationDirection.Up) { migration.Up(model); } else { migration.Down(model); } // // Flush changes // model.Flush(); // // Memorize migration // HistoryRepository.AddItem(context, new MigrationHistoryItem() { Date = DateTime.Now, Direction = direction, Version = migration.GetVersion() } ); // // Notify enviroment // var afterArgs = new AfterMigrationEventArgs(migration.GetVersion(), migration, direction, true); OnAfterMigration(afterArgs); }
public void Down() { _migration.Down(); }
private void RemoveMigration(IMigration migration, MigrationAttribute attr) { // we're removing this one _logger.MigrateDown(Current, migration.Name); if (! DryRun) { migration.Down(); var v = attr.GetVersion(migration.GetType()); _provider.MigrationUnApplied(v.Value, v.Key); _provider.Commit(); migration.AfterDown(); } }
void RemoveMigration(IMigration migration, MigrationAttribute attr) { // we're removing this one _logger.MigrateDown(Current, migration.Name); if (! DryRun) { var tProvider = _provider as TransformationProvider; if (tProvider != null) tProvider.CurrentMigration = migration; migration.Down(); _provider.MigrationUnApplied(attr.Version, attr.Scope); _provider.Commit(); migration.AfterDown(); } }