public static void MigrateUp(string connectionString, string MigrationNamespace, long?toVersion = null) { 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); if (toVersion == null) { runner.MigrateUp(true); } else { runner.MigrateUp(toVersion.Value); } } }
public static void MigrateUp(string connectionString, long?migrationId) { var announcer = GetAnnouncer(); var assembly = Assembly.GetAssembly(typeof(Seed)); var migrationContext = new RunnerContext(announcer) { Namespace = typeof(Seed).Namespace }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60, ProviderSwitches = null }; var factory = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory(); using (var processor = factory.Create(connectionString, announcer, options)) { var runner = new MigrationRunner(assembly, migrationContext, processor); if (migrationId.HasValue) { runner.MigrateUp(migrationId.Value, true); } else { runner.MigrateUp(true); } } }
public void Migrate(string connectionString, MigrationContext migrationContext) { var sw = Stopwatch.StartNew(); _announcer.Heading("Migrating " + connectionString); var assembly = Assembly.GetExecutingAssembly(); var runnerContext = new RunnerContext(_announcer) { Namespace = "NzbDrone.Core.Datastore.Migration", ApplicationContext = migrationContext }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; var factory = new NzbDroneSqliteProcessorFactory(); var processor = factory.Create(connectionString, _announcer, options); var runner = new MigrationRunner(assembly, runnerContext, processor); if (migrationContext.DesiredVersion.HasValue) { runner.MigrateUp(migrationContext.DesiredVersion.Value, true); } else { runner.MigrateUp(true); } sw.Stop(); _announcer.ElapsedTime(sw.Elapsed); }
/// <summary> /// Upgrades the database to the latest version /// </summary> /// <param name="processorFactory"></param> /// <param name="connectionString"></param> public static void MigrateToLatest( MigrationProcessorFactory processorFactory, string connectionString) { var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s)); var migrationContext = new RunnerContext(announcer) { Targets = new[] { nameof(Migrator) } }; // Since migrations might take long increase the command timeout for this. The timeout is in seconds var options = new MigrationProcessorOptions { PreviewOnly = false, Timeout = 60 * 30 }; // 30 minutes using (var processor = processorFactory.Create(connectionString, announcer, options)) { var runner = new MigrationRunner(Assembly.GetAssembly(typeof(Migrator)), migrationContext, processor); runner.MigrateUp(true); } }
// Runs all migrations in the assembly of specified type public static void RunMigrations(string connectionString, MigrationsAssembly migrationsAssembly, MigrationProcessorFactory factory = null) { try { var announcer = new NullAnnouncer(); //var announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s)); var assembly = migrationsAssembly.Assembly; var migrationContext = new RunnerContext(announcer); var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; var processor = (factory ?? new SqlServerProcessorFactory()).Create(connectionString, announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(useAutomaticTransactionManagement: true); processor.Dispose(); } catch (Exception ex) { var message = string.Format("Failed to run migrations for {0}", connectionString); throw new Exception(message, ex); } }
public void MigrateToLatest() { try { var connectionString = _settingsService.ConnectionString(DatabaseContext.DefaultConnectionString); var announcer = new NullAnnouncer(); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(announcer) { NestedNamespaces = true, Namespace = "Database.Migrations", Connection = connectionString }; 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); } } catch (Exception e) { } }
public void MigrateToLatest(string connectionString, MigrationType migrationType) { _announcer.Heading("Migrating " + connectionString); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(_announcer) { Namespace = "NzbDrone.Core.Datastore.Migration", ApplicationContext = new MigrationContext { MigrationType = migrationType, SQLiteAlter = _sqLiteAlter, MigrationHelper = _migrationHelper, } }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; var factory = new SqliteProcessorFactory(); var processor = factory.Create(connectionString, _announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); }
public void MigrateToLatest() { var announcer = new TextWriterAnnouncer(s => SharpStarLogger.DefaultLogger.Debug(s)); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(announcer) { Namespace = "SharpStar.Database.Migrations" }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; ReflectionBasedDbFactory factory; if (MonoHelper.IsRunningOnMono()) { factory = new MonoSQLiteDbFactory(); } else { factory = new SqliteDbFactory(); } var connection = factory.CreateConnection(_config.GetProperty(NHibernate.Cfg.Environment.ConnectionString)); var processor = new SqliteProcessor(connection, new SqliteGenerator(), announcer, options, factory); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); }
public void MigrateToLatest(string connectionString, MigrationType migrationType, Action <NzbDroneMigrationBase> beforeMigration) { var sw = Stopwatch.StartNew(); _announcer.Heading("Migrating " + connectionString); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(_announcer) { Namespace = "NzbDrone.Core.Datastore.Migration", ApplicationContext = new MigrationContext(migrationType, beforeMigration) }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; var factory = new NzbDroneSqliteProcessorFactory(); var processor = factory.Create(connectionString, _announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); sw.Stop(); _announcer.ElapsedTime(sw.Elapsed); }
private void CreateDatabaseSchemaInMemory(string connectionString) { if (connectionString == null) { throw new ArgumentNullException("connectionString"); } // Enable testing profile in FluentMigrator. Environment.SetEnvironmentVariable("TestingProfile", "1", EnvironmentVariableTarget.Process); // Create migration announcer. var announcer = new ConsoleAnnouncer(); // Create migration context. var migrationContext = new RunnerContext(announcer); // Create migration options, factory and runner. var options = new ProcessorOptions { PreviewOnly = false, Timeout = 60 }; var factory = new SqliteProcessorFactory(); var processor = factory.Create(connectionString, announcer, options); var runner = new MigrationRunner(Assembly.GetAssembly(typeof(MigrationExtensions)), migrationContext, processor); // Update database. runner.MigrateUp(long.MaxValue, true); }
public void Executa() { const BancoDeDados bancoDeDados = BancoDeDados.Postgresql; var connectionString = bancoDeDados.GetStringConexao(); Announcer announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s)); announcer.ShowSql = true; var assembly = Assembly.GetExecutingAssembly(); IRunnerContext migrationContext = new RunnerContext(announcer); var options = new ProcessorOptions { PreviewOnly = false, // set to true to see the SQL Timeout = 60 }; var factory = bancoDeDados.GetFactory(); using (var processor = factory.Create(connectionString, announcer, options)) { var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); } }
protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) { base.ApplicationStartup(container, pipelines); var announcer = new NullAnnouncer(); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(announcer) { Namespace = "Server.Migrations" }; var options = new MigrationOptions(); var factory = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory(); var processor = factory.Create( ConfigurationManager.ConnectionStrings["Simple.Data.Properties.Settings.DefaultConnectionString"].ConnectionString, announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); pipelines.EnableBasicAuthentication(new BasicAuthenticationConfiguration(new UserValidator(), "CPNRealm")); JsonSettings.RetainCasing = true; StaticConfiguration.DisableErrorTraces = false; }
public static void Run(IContainer settingsContainer) { var connectionString = settingsContainer.GetInstance <string>("DefaultConnection"); Announcer announcer = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s)); announcer.ShowSql = true; Assembly assembly = typeof(CreateTableEstacionamento).Assembly; IRunnerContext migrationContext = new RunnerContext(announcer); var options = new ProcessorOptions { PreviewOnly = false, // set to true to see the SQL Timeout = 60 }; try { var factory = settingsContainer.GetInstance <MigrationProcessorFactory>(); //new FluentMigrator.Runner.Processors.SQLite.SQLiteProcessorFactory(); var processor = factory.Create(connectionString, announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); } catch (Exception ex) { throw new InvalidOperationException("connectionString: " + connectionString, ex); } }
public void CanMigrateASpecificVersionDown() { try { ExecuteWithSupportedProcessors(processor => { MigrationRunner runner = SetupMigrationRunner(processor); runner.MigrateUp(1); runner.VersionLoader.VersionInfo.HasAppliedMigration(1).ShouldBeTrue(); processor.TableExists(null, "Users").ShouldBeTrue(); }, false, typeof(SqliteProcessor)); ExecuteWithSupportedProcessors(processor => { MigrationRunner testRunner = SetupMigrationRunner(processor); testRunner.MigrateDown(0); testRunner.VersionLoader.VersionInfo.HasAppliedMigration(1).ShouldBeFalse(); processor.TableExists(null, "Users").ShouldBeFalse(); }, false, typeof(SqliteProcessor)); } finally { ExecuteWithSupportedProcessors(processor => { MigrationRunner testRunner = SetupMigrationRunner(processor); testRunner.RollbackToVersion(0); }, false); } }
public UpdateDatabase(String ConnectionString) { var announcer = new TextWriterAnnouncer(s => System.Console.WriteLine(s)); var assembly = Assembly.GetAssembly(typeof(SchemaChanges.frm_20170221_1442)); var migrationContext = new RunnerContext(announcer) { Namespace = "TimeGo.DataModel.SchemaChanges" }; IMigrationProcessorOptions options = new ProcessorOptions { 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(); }
public void MigrateUpWithTaggedMigrationsAndUsingMultipleTagsShouldOnlyApplyMatchedMigrations() { ExecuteWithSupportedProcessors(processor => { var assembly = typeof(TenantATable).Assembly; var runnerContext = new RunnerContext(new TextWriterAnnouncer(System.Console.Out)) { Namespace = typeof(TenantATable).Namespace, Tags = new[] { "TenantA", "TenantB" } }; var runner = new MigrationRunner(assembly, runnerContext, processor); try { runner.MigrateUp(false); processor.TableExists(null, "TenantATable").ShouldBeFalse(); processor.TableExists(null, "NormalTable").ShouldBeTrue(); processor.TableExists(null, "TenantBTable").ShouldBeFalse(); processor.TableExists(null, "TenantAandBTable").ShouldBeTrue(); } finally { new MigrationRunner(assembly, runnerContext, processor).RollbackToVersion(0); } }); }
public static void MigrateToLatest(string connectionString, string migrationAssemblyName) { var assembly = Assembly.Load(new AssemblyName(migrationAssemblyName)); var migrationContext = new RunnerContext(Announcer) { Namespace = migrationAssemblyName + ".Migrations" }; var options = new ProcessorOptions { PreviewOnly = false, Timeout = DefaultTimeout }; var factory = new SqlServer2008ProcessorFactory(); var processor = factory.Create(connectionString, Announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); foreach (var a in runner.MigrationAssemblies.Assemblies) { RunScriptGroup(ScriptRunningGroup.PreMigrationScript, a, processor); } runner.MigrateUp(true); foreach (var a in runner.MigrationAssemblies.Assemblies) { RunScriptGroup(ScriptRunningGroup.PostMigrationScript, a, processor); } }
static void Main() { // Create migration announcer. var announcer = new TextWriterAnnouncer(Console.WriteLine) { ShowSql = true }; // Create migration context. var migrationContext = new RunnerContext(announcer); // Create migration options, factory and runner. var options = new ProcessorOptions { PreviewOnly = false, Timeout = 60 }; var factory = new SqliteProcessorFactory(); var processor = factory.Create(ConnectionString, announcer, options); var runner = new MigrationRunner(Assembly.GetExecutingAssembly(), migrationContext, processor); // Update database. runner.MigrateUp(long.MaxValue, true); // Rollback database. runner.MigrateDown(long.MinValue, true); }
public static void MigrateToLatest(string connectionString, string clientId, string certThumbPrint, string authority) { var announcer = new TextWriterAnnouncer(s => { System.Console.WriteLine(s); System.Diagnostics.Debug.WriteLine(s); }); var assembly = Assembly.Load("MyAppMigrations"); var migrationContext = new RunnerContext(announcer) { Namespace = "MyAppMigrations" }; var options = new MigrationOptions { PreviewOnly = false, Timeout = 60 }; var factory = new AzureSqlProcessorFactory(clientId, certThumbPrint, authority); using (var processor = factory.Create(connectionString, announcer, options)) { var runner = new MigrationRunner(assembly, migrationContext, processor); runner.ListMigrations(); runner.MigrateUp(true); } }
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 (InvalidMigrationException e) { _logger.Error("An invalid migration exception occured; {0:l}", e.Message); } catch (MySqlException e) { _logger.Error("An exception occured while running migration manager; {0:l}", e.Message); } }
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 void VersionInfoCreationScriptsOnlyGeneratedOnceInPreviewMode() { if (!IntegrationTestOptions.SqlServer2008.IsEnabled) { return; } var connection = new SqlConnection(IntegrationTestOptions.SqlServer2008.ConnectionString); var processorOptions = new ProcessorOptions { PreviewOnly = true }; var outputSql = new StringWriter(); var announcer = new TextWriterAnnouncer(outputSql) { ShowSql = true }; var processor = new SqlServerProcessor(connection, new SqlServer2008Generator(), announcer, processorOptions, new SqlServerDbFactory()); try { var asm = typeof(MigrationRunnerTests).Assembly; var runnerContext = new RunnerContext(announcer) { Namespace = "FluentMigrator.Tests.Integration.Migrations", PreviewOnly = true }; var runner = new MigrationRunner(asm, runnerContext, processor); runner.MigrateUp(1, false); processor.CommitTransaction(); string schemaName = new TestVersionTableMetaData().SchemaName; var schemaAndTableName = string.Format("\\[{0}\\]\\.\\[{1}\\]", schemaName, TestVersionTableMetaData.TABLENAME); var outputSqlString = outputSql.ToString(); var createSchemaMatches = new Regex(string.Format("CREATE SCHEMA \\[{0}\\]", schemaName)).Matches(outputSqlString).Count; var createTableMatches = new Regex("CREATE TABLE " + schemaAndTableName).Matches(outputSqlString).Count; var createIndexMatches = new Regex("CREATE UNIQUE CLUSTERED INDEX \\[" + TestVersionTableMetaData.UNIQUEINDEXNAME + "\\] ON " + schemaAndTableName).Matches(outputSqlString).Count; var alterTableMatches = new Regex("ALTER TABLE " + schemaAndTableName).Matches(outputSqlString).Count; System.Console.WriteLine(outputSqlString); createSchemaMatches.ShouldBe(1); createTableMatches.ShouldBe(1); alterTableMatches.ShouldBe(1); createIndexMatches.ShouldBe(1); } finally { CleanupTestSqlServerDatabase(connection, processor); } }
public void ValidateVersionOrderShouldThrowExceptionIfUnappliedMigrationVersionIsLessThanLatestAppliedMigration() { // Using SqlServer instead of SqlLite as versions not deleted from VersionInfo table when using Sqlite. var excludedProcessors = new[] { typeof(SqliteProcessor), typeof(MySqlProcessor), typeof(PostgresProcessor) }; var assembly = typeof(User).Assembly; var runnerContext1 = new RunnerContext(new TextWriterAnnouncer(System.Console.Out)) { Namespace = typeof(Migrations.Interleaved.Pass2.User).Namespace }; var runnerContext2 = new RunnerContext(new TextWriterAnnouncer(System.Console.Out)) { Namespace = typeof(Migrations.Interleaved.Pass3.User).Namespace }; VersionOrderInvalidException caughtException = null; try { ExecuteWithSupportedProcessors(processor => { var migrationRunner = new MigrationRunner(assembly, runnerContext1, processor); migrationRunner.MigrateUp(); }, false, excludedProcessors); ExecuteWithSupportedProcessors(processor => { var migrationRunner = new MigrationRunner(assembly, runnerContext2, processor); migrationRunner.ValidateVersionOrder(); }, false, excludedProcessors); } catch (VersionOrderInvalidException ex) { caughtException = ex; } finally { ExecuteWithSupportedProcessors(processor => { var migrationRunner = new MigrationRunner(assembly, runnerContext2, processor); migrationRunner.RollbackToVersion(0); }, true, excludedProcessors); } caughtException.ShouldNotBeNull(); caughtException.InvalidMigrations.Count().ShouldBe(1); var keyValuePair = caughtException.InvalidMigrations.First(); keyValuePair.Key.ShouldBe(200909060935); ((MigrationWithMetaDataAdapter)keyValuePair.Value).Migration.ShouldBeOfType <UserEmail>(); }
public void CanMigrateASpecificVersion() { ExecuteWithSupportedProcessors(processor => { MigrationRunner runner = SetupMigrationRunner(processor); runner.MigrateUp(1); runner.VersionLoader.VersionInfo.HasAppliedMigration(1).ShouldBeTrue(); processor.TableExists(null, "Users").ShouldBeTrue(); }); }
public void Migrate() { var processor = GetProcessor(); var context = new RunnerContext(new NullAnnouncer()); var migrationRunner = new MigrationRunner( typeof(SqlSchemaMigrator).Assembly, context, processor); migrationRunner.MigrateUp(); }
private static void Migrate(string connectionString) { var announcer = new TextWriterAnnouncer(Console.Out); var migrationContext = new RunnerContext(announcer); var factory = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2012ProcessorFactory(); var assembly = typeof(MigrationProgram).Assembly; using (var processor = factory.Create(connectionString, announcer, new ProcessorOptions())) { var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(); } }
public void CanRunMigrations() { ExecuteWithSupportedProcessors(processor => { MigrationRunner runner = SetupMigrationRunner(processor); runner.MigrateUp(); runner.VersionLoader.VersionInfo.HasAppliedMigration(1).ShouldBeTrue(); runner.VersionLoader.VersionInfo.HasAppliedMigration(2).ShouldBeTrue(); runner.VersionLoader.VersionInfo.Latest().ShouldBe(2); }); }
public void MigrateToLatest() { var announcer = new NullAnnouncer(); var assembly = Assembly.GetExecutingAssembly(); var migrationContext = new RunnerContext(announcer); var options = new ProcessorOptions { PreviewOnly = false, Timeout = 60 }; var factory = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory(); var processor = factory.Create(_settings.ConnectionString, announcer, options); var runner = new MigrationRunner(assembly, migrationContext, processor); runner.MigrateUp(true); }
public void Migrate() { var announcer = new TextWriterAnnouncer(Console.Out) { ShowElapsedTime = true, ShowSql = true }; IRunnerContext migrationContext = new RunnerContext(announcer); var factory = new SQLiteProcessorFactory(); IMigrationProcessor processor = factory.Create(_connectionString, announcer, new ProcessorOptions()); var runner = new MigrationRunner(typeof(Migrator).Assembly, migrationContext, processor); runner.MigrateUp(true); }
public virtual void MigrateUp(MigrationRunner runner, ITaskExecutionContext context, IKernel kernel) { if (runner == null) { throw new ArgumentNullException("runner"); } if (context == null) { throw new ArgumentNullException("context"); } if (kernel == null) { throw new ArgumentNullException("kernel"); } runner.MigrateUp(); }