private static void RunMigrations() { var defaultConnection = SqlConnections.GetConnectionString("Default"); // safety check to ensure that we are not modifying another database if (defaultConnection.ConnectionString.IndexOf(typeof(SiteInitialization).Namespace + @"_Default_v1") < 0) { return; } using (var sw = new StringWriter()) { var announcer = new TextWriterWithGoAnnouncer(sw) { ShowSql = true }; var runner = new RunnerContext(announcer) { Database = "SqlServer", Connection = defaultConnection.ConnectionString, Targets = new string[] { typeof(SiteInitialization).Assembly.Location }, Task = "migrate:up", WorkingDirectory = Path.GetDirectoryName(typeof(SiteInitialization).Assembly.Location), Namespace = "Gimnet.Migrations.DefaultDB" }; new TaskExecutor(runner).Execute(); } }
private static MigrationRunner GetMigrationRunner(StringWriter sw, MigrateDatabaseContext dbItem, Assembly migrationAssembly) { Announcer announcer = new TextWriterWithGoAnnouncer(sw) { ShowSql = true }; var runnerCtx = new RunnerContext(announcer) { ApplicationContext = dbItem }; if (string.IsNullOrWhiteSpace(dbItem.CurrentDatabaseNamespace)) { throw new ArgumentNullException(nameof(dbItem.CurrentDatabaseNamespace), "<DatabaseNamespace> should not null or empty"); } runnerCtx.Namespace = dbItem.CurrentDatabaseNamespace; var options = new ProcessorOptions { PreviewOnly = false, Timeout = dbItem.ConnectionTimeout }; var factory = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2014ProcessorFactory(); using (var processor = factory.Create(dbItem.ConnectionString, announcer, options)) { return(new MigrationRunner(migrationAssembly, runnerCtx, processor)); } }
public void TestSetup() { _stringWriter = new StringWriter(); _announcer = new TextWriterWithGoAnnouncer(_stringWriter) { ShowElapsedTime = true, ShowSql = true }; }
private static void RunMigrations(string databaseKey) { var cs = SqlConnections.GetConnectionString(databaseKey); var connection = cs.ConnectionString; // safety check to ensure that we are not modifying an arbitrary database. // remove these two lines if you want MovieTutorial migrations to run on your DB. if (cs.ConnectionString.IndexOf(typeof(SiteInitialization).Namespace + @"_" + databaseKey + "_v1", StringComparison.OrdinalIgnoreCase) < 0) { SkippedMigrations = true; return; } string databaseType = "SqlServer"; if (String.Equals(cs.ProviderName, "npgsql", StringComparison.OrdinalIgnoreCase)) { databaseType = "Postgres"; } else if (String.Equals(cs.ProviderName, "MySql.Data.MySqlClient", StringComparison.OrdinalIgnoreCase)) { databaseType = "MySql"; } using (var sw = new StringWriter()) { var announcer = new TextWriterWithGoAnnouncer(sw) { }; var runner = new RunnerContext(announcer) { Database = databaseType, Connection = cs.ConnectionString, Targets = new string[] { typeof(SiteInitialization).Assembly.Location }, Task = "migrate:up", WorkingDirectory = Path.GetDirectoryName(typeof(SiteInitialization).Assembly.Location), Namespace = "MovieTutorial.Migrations." + databaseKey + "DB" }; new TaskExecutor(runner).Execute(); } }