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); }
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); }
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); }