Exemplo n.º 1
0
        protected static void ExecuteWithMySql(Action <IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
            {
                return;
            }

            var announcer = new TextWriterAnnouncer(System.Console.Out);

            announcer.Heading("Testing Migration against MySQL Server");

            using (var connection = new MySqlConnection(serverOptions.ConnectionString))
            {
                var processor = new MySqlProcessor(connection, new MySqlGenerator(), announcer, new ProcessorOptions(), new MySqlDbFactory());
                test(processor);
            }
        }
Exemplo n.º 2
0
        public static void Down(string connectionString)
        {
            var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer);
            var options          = new MigrationOptions {
                PreviewOnly = false, Timeout = 60, ProviderSwitches = string.Empty
            };
            var factory = new PostgresProcessorFactory();

            using (var processor = factory.Create(connectionString, announcer, options))
            {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateDown(0);
            }
        }
Exemplo n.º 3
0
        public void AlterTable_MigrationRequiresAutomaticDelete_AndProcessorHasUndoDisabled_ShouldNotThrow()
        {
            using (var tempDb = new TemporaryDatabase(IntegrationTestOptions.Firebird, _firebirdLibraryProber))
            {
                var connectionString = tempDb.ConnectionString;

                var runnerContext = new RunnerContext(new TextWriterAnnouncer(TestContext.Out))
                {
                    Namespace = "FluentMigrator.Tests.Integration.Migrations"
                };

                using (var connection = new FbConnection(connectionString))
                {
                    FirebirdProcessor processor;
                    var announcer = new TextWriterAnnouncer(TestContext.Out);
                    announcer.ShowSql = true;
                    var options = FirebirdOptions.AutoCommitBehaviour();
                    options.TruncateLongNames = false;
                    processor = new FirebirdProcessor(connection, new FirebirdGenerator(options), announcer,
                                                      new ProcessorOptions(), new FirebirdDbFactory(), options);
                    var runner = new MigrationRunner(Assembly.GetExecutingAssembly(), runnerContext, processor);
                    runner.Up(new MigrationWhichCreatesTwoRelatedTables());
                    processor.CommitTransaction();
                    FbConnection.ClearPool(connection);
                }

                //---------------Assert Precondition----------------
                Assert.IsTrue(ForeignKeyExists(connectionString, MigrationWhichCreatesTwoRelatedTables.ForeignKeyName),
                              "Foreign key does not exist after first migration");
                using (var connection = new FbConnection(connectionString))
                {
                    FirebirdProcessor processor;
                    var announcer = new TextWriterAnnouncer(TestContext.Out);
                    announcer.ShowSql = true;
                    var options = FirebirdOptions.AutoCommitBehaviour();
                    processor = new FirebirdProcessor(connection, new FirebirdGenerator(options), announcer,
                                                      new ProcessorOptions(), new FirebirdDbFactory(), options);
                    var runner = new MigrationRunner(Assembly.GetExecutingAssembly(), runnerContext, processor);
                    runner.Up(new MigrationWhichAltersTableWithFK());
                    processor.CommitTransaction();
                }

                Assert.IsTrue(ForeignKeyExists(connectionString, MigrationWhichCreatesTwoRelatedTables.ForeignKeyName),
                              "Foreign key does not exist after second migration");
            }
        }
Exemplo n.º 4
0
        private void ExecuteMigrations(string outputTo)
        {
            using (var sw = new StreamWriter(outputTo))
            {
                var fileAnnouncer = new TextWriterAnnouncer(sw)
                {
                    ShowElapsedTime = false,
                    ShowSql         = true
                };
                consoleAnnouncer.ShowElapsedTime = Verbose;
                consoleAnnouncer.ShowSql         = Verbose;

                var announcer = new CompositeAnnouncer(consoleAnnouncer, fileAnnouncer);

                ExecuteMigrations(announcer);
            }
        }
Exemplo n.º 5
0
        protected override Result <MigrationResult> ExecuteCore(Session session, MigrationContract contract)
        {
            if (contract == null)
            {
                throw new ArgumentNullException(nameof(contract));
            }

            var announcer        = new TextWriterAnnouncer(Logger.Debug);
            var migrationContext = new RunnerContext(announcer)
            {
                NestedNamespaces = true
            };

            var factoryProvider = new MigrationProcessorFactoryProvider();
            var factory         = factoryProvider.GetFactory(contract.DatabaseType);

            var migrationOptions = new ProcessorOptions
            {
                PreviewOnly      = false,
                ProviderSwitches = null,
                Timeout          = contract.Timeout
            };

            using (var processor = factory.Create(contract.AdminConnectionString, announcer, migrationOptions))
            {
                var migrationAssemblies = _migrationAssemblies.Select(x => x.Assembly);

                var assemblies = new AssemblyCollection(migrationAssemblies);
                var runner     = new MigrationRunner(assemblies, migrationContext, processor);

                runner.Conventions.TypeIsMigration  = IsTypeMigration;
                runner.Conventions.GetMigrationInfo = GetPlatformMigrationInfo;

                Logger.Info("Start migration");
                Logger.Info($"-> Database type: {contract.DatabaseType}");
                Logger.Info($"-> Command timeout: {migrationOptions.Timeout}");
                Logger.Info($"-> Assemblies to scan: {string.Join("; ", assemblies.Assemblies.Select(x => x.GetName().Name))}");

                runner.MigrateUp(true);
            }

            var migrationResult = new MigrationResult(_migrationAssemblies);

            return(Success(migrationResult));
        }
Exemplo n.º 6
0
        public void Load()
        {
            Announcer      announcer = new TextWriterAnnouncer(x => Debug.WriteLine(""));
            var            assembly  = Assembly.GetExecutingAssembly();
            IRunnerContext ctx       = new RunnerContext(announcer);
            var            options   = new ProcessorOptions
            {
                PreviewOnly = false,
                Timeout     = 40
            };
            var    factory   = new SqlServer2012ProcessorFactory();
            string con       = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
            var    processer = factory.Create(con, announcer, options);

            var runner = new MigrationRunner(assembly, ctx, processer);

            runner.MigrateUp();
        }
Exemplo n.º 7
0
        public static void ApplyMigration(Assembly assembly, ConnectionStringSettings connectionString)
        {
            var announcer = new TextWriterAnnouncer(s => Debug.WriteLine(s));

            var migrationContext = new RunnerContext(announcer)
            {
                Profile = "Default"
            };

            var options = new ProcessorOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory   = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2012ProcessorFactory();
            var processor = factory.Create(connectionString.ConnectionString, announcer, options);
            var runner    = new MigrationRunner(assembly, migrationContext, processor);

            runner.MigrateUp(true);
        }
Exemplo n.º 8
0
    public static void MigrateToLatest(string connectionString)
    {
        // var announcer = new NullAnnouncer();
        var announcer        = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
        var assembly         = Assembly.GetExecutingAssembly();
        var migrationContext = new RunnerContext(announcer)
        {
            Namespace = "MyApp.Sql.Migrations"
        };
        var options = new MigrationOptions {
            PreviewOnly = false, Timeout = 60
        };
        var factory   = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory();
        var processor = factory.Create(connectionString, announcer, options);
        var runner    = new MigrationRunner(assembly, migrationContext, processor);

        runner.MigrateUp(true);
    }
Exemplo n.º 9
0
        protected static void ExecuteWithFirebird(Action <IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
            {
                return;
            }

            var announcer = new TextWriterAnnouncer(System.Console.Out);

            announcer.ShowSql = true;
            announcer.Heading("Testing Migration against Firebird Server");

            if (!System.IO.File.Exists("fbtest.fdb"))
            {
                FbConnection.CreateDatabase(serverOptions.ConnectionString);
            }

            using (var connection = new FbConnection(serverOptions.ConnectionString))
            {
                var options   = FirebirdOptions.AutoCommitBehaviour();
                var processor = new FirebirdProcessor(connection, new FirebirdGenerator(options), announcer, new ProcessorOptions(), new PostgresDbFactory(), options);

                try
                {
                    test(processor);
                }
                catch (Exception e)
                {
                    if (!processor.WasCommitted)
                    {
                        processor.RollbackTransaction();
                    }
                    throw e;
                }


                if (!processor.WasCommitted)
                {
                    processor.RollbackTransaction();
                }

                connection.Close();
            }
        }
Exemplo n.º 10
0
        public int Run()
        {
            var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s))
            {
                ShowSql = true
            };

            IRunnerContext migrationContext = new RunnerContext(announcer)
            {
                Profile = Constants.MigratorProfileName
            };

            var processor = new SqlServer2014ProcessorFactory().Create(DatabaseConnectionString, announcer, new ProcessorOptions
            {
                PreviewOnly = false,
                Timeout     = _options.TimeoutSeconds
            });

            var runner = new MigrationRunner(Assembly.GetEntryAssembly(), migrationContext, processor);

            try
            {
                if (_options.GenerateEnums)
                {
                    runner.Up(new EnumTableGenerator());
                }
                if (_options.MigrationRequest.HasValue)
                {
                    runner.MigrateUp(_options.MigrationRequest.Value, true);
                }
                else
                {
                    runner.MigrateUp(true);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
                return(-1);
            }

            return(0);
        }
        public static void MigrateDown(long toVersion, string MigrationNamespace, string connectionString)
        {
            var announcer        = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var assembly         = Assembly.GetExecutingAssembly();
            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = MigrationNamespace
            };
            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory = new FluentMigrator.Runner.Processors.Postgres.PostgresProcessorFactory();

            using (var processor = factory.Create(connectionString, announcer, options))
            {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateDown(toVersion);
            }
        }
Exemplo n.º 12
0
        public static void MigrateToLastVersion()
        {
            //// TODO: separate schema methods in another class
            var provider = Dependency.Resolve <IDatabaseAdapter>();

            Log.Framework.DebugFormat("Migrating database schema to last version");

            if (Database.Configuration.Migrations.Any() == false)
            {
                Log.Framework.Warn("No assembly with migrations was found. Use Database.AddMapping(typeof(SomeMigration).Assembly);");
            }

            foreach (var migration in Database.Configuration.Migrations)
            {
                Log.Framework.DebugFormat("Migrating {0}", migration.FullName);

                var announcer = new TextWriterAnnouncer(s =>
                {
                    s = s.Replace(Environment.NewLine, string.Empty);

                    if (string.IsNullOrEmpty(s) == false)
                    {
                        Log.Framework.DebugFormat(s);
                    }
                });

                var assembly = migration;

                var migrationContext = new RunnerContext(announcer);
                var factory          = provider.GetMigratorDriver();
                var processor        = factory.Create(AppSettings.ConnectionString, announcer, new ProcessorOptions
                {
                    Timeout     = 60,
                    PreviewOnly = false
                });

                var runner = new MigrationRunner(assembly, migrationContext, processor);

                runner.MigrateUp();
            }

            Log.Framework.DebugFormat("Database migrated");
        }
Exemplo n.º 13
0
        private static MigrationRunner CreateMigrationRunner(string connectionString)
        {
            var announcer = new TextWriterAnnouncer(s => Debug.WriteLine(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = "Migrator.Migrations"
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory   = new SqlServer2008ProcessorFactory();
            var processor = factory.Create(connectionString, announcer, options);
            var runner    = new MigrationRunner(assembly, migrationContext, processor);

            return(runner);
        }
Exemplo n.º 14
0
        public static string Run()
        {
            var connectionString = ConfigurationManager.ConnectionStrings["Main"].ConnectionString;

            var migrationLog  = new StringBuilder();
            var announcer     = new TextWriterAnnouncer(s => migrationLog.Append(s));
            var runnerContext = new RunnerContext(announcer)
            {
                Database   = "sqlserver",
                Connection = connectionString,
                Targets    = new [] { typeof(MigrationsRunner).Assembly.FullName }
            };

            var taskExecutor = new TaskExecutor(runnerContext);

            taskExecutor.Execute();

            return(migrationLog.ToString());
        }
Exemplo n.º 15
0
        protected static void ExecuteWithSqlite(Action <IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions)
        {
            if (!serverOptions.IsEnabled)
            {
                return;
            }

            var announcer = new TextWriterAnnouncer(System.Console.Out);

            announcer.Heading("Testing Migration against SQLite");

            var factory = new SqliteDbFactory();

            using (var connection = factory.CreateConnection(serverOptions.ConnectionString))
            {
                var processor = new SqliteProcessor(connection, new SqliteGenerator(), announcer, new ProcessorOptions(), factory);
                test(processor);
            }
        }
        public void MigrateToLatest()
        {
            var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer)
            {
                Targets = new[] { assembly.FullName }
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory   = new FluentMigrator.Runner.Processors.Postgres.PostgresProcessorFactory();
            var processor = factory.Create(_connectionString, announcer, options);
            var runner    = new MigrationRunner(assembly, migrationContext, processor);

            runner.MigrateUp(true);
        }
        private TaskExecutor MakeTask(string task, string migrationsNamespace, Action<RunnerContext> configureContext = null)
        {
            var consoleAnnouncer = new TextWriterAnnouncer(TestContext.Out)
            {
                ShowSql = true
            };
            var debugAnnouncer = new TextWriterAnnouncer(msg => Debug.WriteLine(msg));
            var announcer = new CompositeAnnouncer(consoleAnnouncer, debugAnnouncer);
            var runnerContext = new RunnerContext(announcer)
            {
                Database = "SqlServer2016",
                Connection = IntegrationTestOptions.SqlServer2016.ConnectionString,
                Targets = new[] { Assembly.GetExecutingAssembly().Location },
                Namespace = migrationsNamespace,
                Task = task
            };

            configureContext?.Invoke(runnerContext);
            return new TaskExecutor(runnerContext);
        }
Exemplo n.º 18
0
        private void Migrate()
        {
            var connectionString = ConfigFixture.Config.GetConnectionString("DefaultConnection");
            var announcer        = new TextWriterAnnouncer(Console.WriteLine);

            announcer.ShowSql = true;

            var assembly         = Assembly.Load("Skrabbl.DataAccess");
            var migrationContext = new RunnerContext(announcer);
            var options          = new ProcessorOptions
            {
                PreviewOnly = false,
                Timeout     = TimeSpan.FromMinutes(1)
            };
            var factory = new SqlServer2016ProcessorFactory();

            using var processor = factory.Create(connectionString, announcer, options);
            var runner = new MigrationRunner(assembly, migrationContext, processor);

            runner.MigrateUp();
        }
Exemplo n.º 19
0
        public void Initialize()
        {
            var announcer = new TextWriterAnnouncer(s => FileLogger.Debug(BasePage.LoggerName, s));
            var assembly  = Assembly.Load("AmministrazioneTrasparente.SQLite");

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = MIGRATION_NAMESPACE
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory = new FluentMigrator.Runner.Processors.SQLite.SQLiteProcessorFactory();

            using (var processor = factory.Create(this._connection, announcer, options))
            {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateUp(true);
            }
        }
Exemplo n.º 20
0
        public static void MigrateToLatest(string connectionString)
        {
            var announcer = new TextWriterAnnouncer(s => logger.Info(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = "UCLouvain.AmbulanceSystem.Server.Migrations"
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            // var factory = new MonoSQLiteProcessorFactory();
            var factory = new PostgresProcessorFactory();

            using (var processor = factory.Create(connectionString, announcer, options)) {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateUp(true);
            }
        }
        private void Execute()
        {
            var announcer = new TextWriterAnnouncer(Console.Out)
            {
                ShowElapsedTime = true, ShowSql = true
            };
            var runnerContext = new RunnerContext(announcer)
            {
                Database   = _database,
                Task       = _task,
                Connection = _connectionString,
                Targets    = new[] { _migrationAssembly.CodeBase.Replace("file:///", "") },
                Version    = _version
            };

            Trace.TraceInformation("#\n# Executing migration task {0}...\n#\n", _task);
            var task = new TaskExecutor(runnerContext);

            task.Execute();
            Trace.TraceInformation("\n#\n# Task {0} complete!\n#", _task);
        }
Exemplo n.º 22
0
        public void Migrate(Action <IMigrationRunner> runnerAction)
        {
            //using (var announcer = new NullAnnouncer())
            var announcer        = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var migrationContext = new RunnerContext(announcer)
            {
#if DEBUG
                // will create testdata
                Profile = "development"
#endif
            };
            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 0
            };
            var factory   = new SqlServer2008ProcessorFactory();
            var assembly  = Assembly.GetExecutingAssembly();
            var processor = factory.Create(_connectionString, announcer, options);
            var runner    = new MigrationRunner(assembly, migrationContext, processor);

            runnerAction(runner);
        }
        public void MigrateToLatest()
        {
            var announcer = new TextWriterAnnouncer(s => Debug.WriteLine(s));


            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = Namespace
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory = new PostgresProcessorFactory();

            using (var processor = factory.Create(ConnectionString, announcer, options))
            {
                var runner = new MigrationRunner(Assembly, migrationContext, processor);
                runner.MigrateUp(true);
            }
        }
        private void Migrate(TextWriter writer, bool previewOnly, bool rollback, long?version = null, string connectionString = null)
        {
            string cs;
            long   highestMigration;
            string task, database;

            using (var con = string.IsNullOrEmpty(connectionString) ? Database.OpenDbConnection() : OpenConnection(connectionString))
            {
                database         = DialectToDatabaseString(con.GetDialectProvider());
                cs               = con.ConnectionString;
                highestMigration = con.TableExists("VersionInfo") ? con.Scalar <long>("SELECT MAX(Version) from VersionInfo") : -1;
            }

            if (rollback)
            {
                task = version.HasValue ? "rollback:toversion" : "rollback";
            }
            else
            {
                task = !version.HasValue || version.Value >= highestMigration ? "migrate:up" : "migrate:down";
            }

            var announcer = new TextWriterAnnouncer(writer)
            {
                ShowElapsedTime = true,
                ShowSql         = true,
            };

            var context = new RunnerContext(announcer)
            {
                Database    = database,
                Connection  = cs,
                Targets     = new[] { Assembly.Location },
                PreviewOnly = previewOnly,
                Task        = task,
                Version     = version ?? 0,
            };

            new TaskExecutor(context).Execute();
        }
Exemplo n.º 25
0
        public void MigrateToLatest(string connectionString)
        {
            var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var assembly  = Assembly.GetExecutingAssembly();

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = "DriveHUD.Application.MigrationService.Migrations"
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };

            var factory = GetProcessorFactory();

            using (var processor = factory.Create(connectionString, announcer, options))
            {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateUp(true);
            }
        }
Exemplo n.º 26
0
        public virtual void Migrate(string connectionString, Assembly assembly = null)
        {
            if (_databaseType == "sqlite")
            {
                CopyInteropAssemblyByPlatform();
            }
            assembly = assembly ?? Assembly.GetExecutingAssembly();
            var announcer = new TextWriterAnnouncer(Console.Out)
            {
                ShowSql = true, ShowElapsedTime = false
            };
            var context = new RunnerContext(announcer)
            {
                Connection = connectionString,
                Database   = _databaseType,
                Target     = assembly.FullName,
                Profile    = "linger",
            };
            var executor = new TaskExecutor(context);

            executor.Execute();
        }
Exemplo n.º 27
0
        public static void MigrateToLatest(string connectionString, Type sourceNamespace)
        {
            var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var assembly  = Assembly.GetAssembly(sourceNamespace);

            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = sourceNamespace.Namespace
            };

            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory =
                new FluentMigrator.Runner.Processors.SqlServer.SqlServer2014ProcessorFactory();

            using (var processor = factory.Create(connectionString, announcer, options))
            {
                var runner = new MigrationRunner(assembly, migrationContext, processor);
                runner.MigrateUp(true);
            }
        }
Exemplo n.º 28
0
        protected static void ExecuteWithSqlServer(Action <IMigrationProcessor> test, IntegrationTestOptions.DatabaseServerOptions serverOptions, Boolean tryRollback)
        {
            if (!serverOptions.IsEnabled)
            {
                return;
            }

            var announcer = new TextWriterAnnouncer(System.Console.Out);

            announcer.Heading("Testing Migration against MS SQL Server");

            using (var connection = new SqlConnection(serverOptions.ConnectionString))
            {
                var processor = new SqlServerProcessor(connection, new SqlServer2000Generator(), announcer, new ProcessorOptions());
                test(processor);

                if (tryRollback && !processor.WasCommitted)
                {
                    processor.RollbackTransaction();
                }
            }
        }
Exemplo n.º 29
0
        private static void Execute(Assembly assembly, string task, string databaseType, string connectionString)
        {
            const bool verbose          = true;
            var        consoleAnnouncer = new TextWriterAnnouncer(Console.Out)
            {
                ShowElapsedTime = verbose,
                ShowSql         = verbose
            };

            var runnerContext = new RunnerContext(consoleAnnouncer)
            {
                Database   = databaseType,
                Connection = connectionString,
                Timeout    = 90,
                Target     = assembly.Location,
                Task       = task
            };

            var taskExecutor = new TaskExecutor(runnerContext);

            taskExecutor.Execute();
        }
Exemplo n.º 30
0
        private void Check()
        {
            try
            {
                var announcer        = new TextWriterAnnouncer(WriteLog);
                var assembly         = Assembly.GetExecutingAssembly();
                var migrationContext = new RunnerContext(announcer);

                var options = new MigrationOptions {
                    PreviewOnly = false, Timeout = 60
                };
                var factory   = new FluentMigrator.Runner.Processors.MySql.MySqlProcessorFactory();
                var processor = factory.Create(_provider.ConnectionString, announcer, options);
                var runner    = new MigrationRunner(assembly, migrationContext, processor);

                runner.MigrateUp(true);
            }
            catch (MySqlException e)
            {
                _logger.Error("An exception occured while running migration manager. Please ensure your mysql settings are correct; {0:l}", e.Message);
            }
        }