private MigrationRunner GetRunner() { var assembly = typeof(Product).Assembly; App.Log.Info("Migrating {0}", assembly.FullName); var announcer = new TextWriterAnnouncer(s => { s = s.Replace(Environment.NewLine, string.Empty); if (string.IsNullOrEmpty(s) == false) { App.Log.Debug(s); } }); var migrationContext = new RunnerContext(announcer); var factory = new SqlServer2014ProcessorFactory(); var processor = factory.Create(App.ConnectionString, announcer, new ProcessorOptions { Timeout = 60, PreviewOnly = false }); var runner = new MigrationRunner(assembly, migrationContext, processor); return(runner); }
private static MigrationRunner GetMigrationRunner( Assembly migrationAssembly, string connectionString, string databaseName, Action <string> announcer, TimeSpan timeout, object applicationContext) { if (timeout == default(TimeSpan)) { timeout = TimeSpan.FromSeconds(30); } var realConnectionString = ReplaceOrAddInitialCatalogInConnectionString(connectionString, databaseName); var fluentMigratorAnnouncer = new TextWriterAnnouncer(announcer) { ShowElapsedTime = true, ShowSql = true }; var options = new MigrationOptions { PreviewOnly = false, Timeout = (int)timeout.TotalSeconds }; var migrationContext = new RunnerContext(fluentMigratorAnnouncer) { ApplicationContext = applicationContext, Database = databaseName, Timeout = (int)timeout.TotalSeconds, }; var factory = new SqlServer2014ProcessorFactory(); var processor = factory.Create(realConnectionString, fluentMigratorAnnouncer, options); var runner = new MigrationRunner(migrationAssembly, migrationContext, processor); return(runner); }