Пример #1
0
 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;
     });
 }
Пример #2
0
        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;
            });
        }