private static void SetupMigrateRunner(Core.MigrationRunner runner) { runner.SetOnMigrationError((ctx) => { output.Info("Migration error!"); Console.WriteLine(ctx.Exception); ctx.Decision = Core.OnMigrationErrorDecision.Stop; }); runner.SetOnCompletingTransaction((ctx) => { ctx.Decision = ctx.HasErrors ? Core.OnCompletingTransactionDecision.Rollback : Core.OnCompletingTransactionDecision.Commit; }); }
private static void SetupDynamicRunner(Core.MigrationRunner runner) { runner.SetOnCompletingTransaction((context) => { output.Info("You are about to complete the migration process. What would you like to do?"); DbMigrator.Core.OnCompletingTransactionDecision?decision = null; while (decision == null) { decision = TryReadEnum <DbMigrator.Core.OnCompletingTransactionDecision>(); } context.Decision = decision.Value; }); runner.SetOnMigrating((context) => { output.Info(string.Format("Current Migration: {0}", context.Migration.Identifier)); DbMigrator.Core.OnMigratingDecision?decision = null; while (decision == null) { decision = TryReadEnum <DbMigrator.Core.OnMigratingDecision>(); } context.Decision = decision.Value; }); runner.SetOnMigrationError((context) => { output.Info(context.Exception.ToString()); output.Info("An error has ocurred. What would you like to do?"); DbMigrator.Core.OnMigrationErrorDecision?decision = null; while (decision == null) { decision = TryReadEnum <DbMigrator.Core.OnMigrationErrorDecision>(); } context.Decision = decision.Value; }); }