Example #1
0
        public override bool Execute()
        {
            if (string.IsNullOrEmpty(databaseType))
            {
                Log.LogError("You must specific a database type. i.e. mysql or sqlserver");
                return(false);
            }

            if (string.IsNullOrEmpty(migrationAssembly))
            {
                Log.LogError("You must specific a migration assembly");
                return(false);
            }


            Log.LogMessage(MessageImportance.Low, "Creating Context");
            var announcer = new BaseAnnouncer(msg => Log.LogMessage(MessageImportance.Normal, msg))
            {
                ShowElapsedTime = Verbose,
                ShowSql         = Verbose
            };
            var runnerContext = new RunnerContext(announcer)
            {
                Database   = databaseType,
                Connection = Connection,
                ConnectionStringConfigPath = ConnectionStringConfigPath,
                Target           = Target,
                PreviewOnly      = PreviewOnly,
                Namespace        = Namespace,
                Task             = Task,
                Version          = Version,
                Steps            = Steps,
                WorkingDirectory = WorkingDirectory,
                Profile          = Profile,
                Timeout          = Timeout,
            };

            Log.LogMessage(MessageImportance.Low, "Executing Migration Runner");
            try
            {
                new TaskExecutor(runnerContext).Execute();
            }
            catch (ProcessorFactoryNotFoundException ex)
            {
                announcer.Error("While executing migrations the following error was encountered: {0}", ex.Message);
                return(false);
            }
            catch (Exception ex)
            {
                announcer.Error("While executing migrations the following error was encountered: {0}, {1}", ex.Message, ex.StackTrace);
                return(false);
            }

            return(true);
        }
Example #2
0
        private static void RunMigrations(string databaseKey)
        {
            var cs         = SqlConnections.GetConnectionString(databaseKey);
            var connection = cs.ConnectionString;

            string serverType  = cs.Dialect.ServerType;
            bool   isSqlServer = serverType.StartsWith("SqlServer", StringComparison.OrdinalIgnoreCase);
            bool   isOracle    = !isSqlServer && serverType.StartsWith("Oracle", StringComparison.OrdinalIgnoreCase);

            // safety check to ensure that we are not modifying an arbitrary database.
            // remove these lines if you want TOY migrations to run on your DB.
            if (!isOracle && cs.ConnectionString.IndexOf(typeof(SiteInitialization).Namespace +
                                                         @"_" + databaseKey + "_v1", StringComparison.OrdinalIgnoreCase) < 0)
            {
                SkippedMigrations = true;
                return;
            }

            string databaseType     = isOracle ? "OracleManaged" : serverType;
            var    connectionString = cs.ConnectionString;

            using (var sw = new StringWriter())
            {
                Announcer announcer = isOracle ?
                                      new TextWriterAnnouncer(sw)
                {
                    ShowSql = true
                } :
                new TextWriterWithGoAnnouncer(sw)
                {
                    ShowSql = true
                };

                var runner = new RunnerContext(announcer)
                {
                    Database         = databaseType,
                    Connection       = connectionString,
                    Targets          = new string[] { typeof(SiteInitialization).Assembly.Location },
                    Task             = "migrate:up",
                    WorkingDirectory = Path.GetDirectoryName(typeof(SiteInitialization).Assembly.Location),
                    Namespace        = "TOY.Migrations." + databaseKey + "DB",
                    Timeout          = 90
                };

                try
                {
                    new TaskExecutor(runner).Execute();
                }
                catch (Exception ex)
                {
                    throw new Exception("Error executing migration:\r\n" +
                                        sw.ToString(), ex);
                }
            }
        }
Example #3
0
        private void RunMigration(Action <MigrationRunner> runAction)
        {
            Announcer announcer = CreateAnnouncer();

            using (IMigrationProcessor processor = CreateMigrationProcessor(announcer))
            {
                IRunnerContext migrationContext = new RunnerContext(announcer);
                var            runner           = new MigrationRunner(_migrationAssembly, migrationContext, processor);
                runAction(runner);
            }
        }
Example #4
0
        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>();
        }
Example #5
0
        private MigrationRunner CreateMigrationRunner()
        {
            var processor        = GetMigrationProcessor();
            var migrationContext = new RunnerContext(Announcer)
            {
                Namespace             = NamespaceContainingMigrations,
                TransactionPerSession = true,
            };

            return(new MigrationRunner(AssemblyContainingMigrations, migrationContext, processor));
        }
Example #6
0
        public void Run()
        {
            using (var connection = new SqlConnection(_connectionString))
            {
                var context   = new RunnerContext(_announcer);
                var generator = GetMigrationGenerator(_syntax);
                var processor = new SqlServerProcessor(connection, generator, _announcer, _options);
                var runner    = new FluentMigrator.Runner.MigrationRunner(_assembly, context, processor);

                runner.MigrateUp();
            }
        }
Example #7
0
        public void Migrate()
        {
            var processor = GetProcessor();
            var context   = new RunnerContext(new NullAnnouncer());

            var migrationRunner = new MigrationRunner(
                typeof(SqlSchemaMigrator).Assembly,
                context,
                processor);

            migrationRunner.MigrateUp();
        }
        public static void Run()
        {
            ConnectionStringSettings connectionString = ConfigurationManager.ConnectionStrings["BeerConf"];
            var runnerContext = new RunnerContext(new NullAnnouncer())
            {
                Database   = "sqlserver",
                Connection = connectionString.ConnectionString,
                Target     = typeof(MigrationsRunner).Assembly.FullName,
            };

            new TaskExecutor(runnerContext).Execute();
        }
Example #9
0
        private static string ExecuteMigration(string databaseType, string connectionString, long version,
                                               string profile, Assembly assembly, bool trace, IEnumerable <string> tags, bool sqlOnly = false)
        {
            assembly = assembly ?? Assembly.GetExecutingAssembly();

            var outputPath = Path.GetTempFileName();

            using (var sw = new StreamWriter(outputPath))
            {
                var announcers = new List <IAnnouncer>();
                if (sqlOnly)
                {
                    announcers.Add(new TextWriterAnnouncer(sw)
                    {
                        ShowSql = true
                    });
                }
                if (trace)
                {
                    announcers.Add(new ConsoleAnnouncer {
                        ShowSql = true
                    });
                }
                if (announcers.Count == 0)
                {
                    announcers.Add(new NullAnnouncer());
                }
                var context = new RunnerContext(new CompositeAnnouncer(announcers.ToArray()))
                {
                    Connection  = connectionString,
                    Database    = databaseType,
                    Targets     = new[] { assembly.FullName },
                    Version     = version,
                    Profile     = profile,
                    Timeout     = 0,
                    Tags        = tags,
                    PreviewOnly = sqlOnly
                };
                var executor = new TaskExecutor(context);
                executor.Execute();
            }

            if (string.IsNullOrWhiteSpace(outputPath))
            {
                File.Delete(outputPath);
                return(string.Empty);
            }

            var sql = File.ReadAllText(outputPath);

            File.Delete(outputPath);
            return(sql);
        }
Example #10
0
        public void TwoMigrationsWithSpecificUpdates_ShouldUpdateAffectedRows()
        {
            //---------------Set up test pack-------------------
            using (var deleter = GetFreshTempFileForDB())
            {
                var connectionString = GetConnectionStringToTempDatabaseAt(deleter.FileNames.First());

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


                using (var connection = new FbConnection(connectionString))
                {
                    FirebirdProcessor processor;
                    var runner = CreateFirebirdEmbeddedRunnerFor(connection, runnerContext, out processor);
                    runner.Up(new CreateTableMigration());
                    runner.Up(new AddDataMigration(1));
                    runner.Up(new AddDataMigration(2));
                    runner.Up(new AddDataMigration(3));
                    //---------------Assert Precondition----------------
                    connection.Open();
                    const string countSql = "select count(*) as \"TheCount\" from \"TheTable\" where \"Id\" = {0}";
                    using (var cmd = new FbCommand(String.Format(countSql, 1), connection))
                    {
                        using (var reader = cmd.ExecuteReader())
                        {
                            Assert.IsTrue(reader.Read());
                            Assert.AreEqual(1, Convert.ToInt32(reader["TheCount"]));
                        }
                    }
                    //---------------Execute Test ----------------------
                    Exception thrown = null;
                    try
                    {
                        runner.Up(new UpdateMigration(4, 1));
                        runner.Up(new UpdateMigration(5, 2));
                        processor.CommitTransaction();
                        Assert.AreEqual(1, CountRowsWith(countSql, 4, connection));
                        Assert.AreEqual(1, CountRowsWith(countSql, 5, connection));
                    }
                    catch (Exception ex)
                    {
                        thrown = ex;
                    }


                    //---------------Test Result -----------------------
                    Assert.IsNull(thrown);
                }
            }
        }
Example #11
0
        public RunnerContext GetRunnerContext(string profile, IEnumerable <string> tags, bool previewOnly)
        {
            var announcer = new NullAnnouncer();
            var context   = new RunnerContext(announcer)
            {
                PreviewOnly = previewOnly,
                Profile     = profile,
                Tags        = tags
            };

            return(context);
        }
        private static void RunMigrations(string databaseKey)
        {
            var cs = SqlConnections.GetConnectionString(databaseKey);
            var connection = cs.ConnectionString;

            bool isOracle = cs.Dialect.GetType() == typeof(OracleDialect);

            // safety check to ensure that we are not modifying an arbitrary database.
            // remove these lines if you want TestThisSerene migrations to run on your DB.
            if (!isOracle && 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";
            else if (isOracle)
                databaseType = "OracleManaged";

            using (var sw = new StringWriter())
            {
                Announcer announcer = isOracle ?
                    new TextWriterAnnouncer(sw) { ShowSql = true } :
                    new TextWriterWithGoAnnouncer(sw) { ShowSql = true };

                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 = "TestThisSerene.Migrations." + databaseKey + "DB"
                };

                try
                {
                    new TaskExecutor(runner).Execute();
                }
                catch (Exception ex)
                {
                    throw new Exception("Error executing migration:\r\n" +
                        sw.ToString(), ex);
                }

            }
        }
        public IMigrationProcessor CreateMigrationProcessor(RunnerContext context, IDbConnection connection)
        {
            var isClose = connection.State != ConnectionState.Open;

            try
            {
                if (isClose)
                {
                    connection.Open();
                }

                IMigrationGenerator migrationGenerator;
                using (var command = new SqlCommand("SELECT CAST(LEFT(CAST(SERVERPROPERTY('productversion') AS varchar(50)),CHARINDEX('.',CAST(SERVERPROPERTY('productversion') AS varchar(50)))-1)AS int)", connection as SqlConnection))
                {
                    var version = (int)command.ExecuteScalar();
                    switch (version)
                    {
                    case 9:
                        migrationGenerator = new SqlServer2005Generator();
                        break;

                    case 10:
                        migrationGenerator = new SqlServer2008Generator();
                        break;

                    default:
                        migrationGenerator = new SqlServer2012Generator();
                        //                            throw new Exception(string.Format("无法识别的数据库版本:{0}。", version));
                        break;
                    }
                }

                return(new SqlServerProcessor(
                           connection
                           , migrationGenerator
                           , context.Announcer,
                           new ProcessorOptions
                {
                    PreviewOnly = context.PreviewOnly,
                    ProviderSwitches = context.ProviderSwitches,
                    Timeout = context.Timeout
                }
                           , new SqlServerDbFactory()));
            }
            finally
            {
                if (!isClose)
                {
                    connection.Close();
                }
            }
        }
Example #14
0
        public void RenameTable_WhenOriginalTableContainsMultipleRows_ShouldNotFailToMigrate()
        {
            //---------------Set up test pack-------------------
            var tempResources = WriteOutFirebirdEmbeddedLibrariesToCurrentWorkingDirectory();
            var tempFile      = Path.GetTempFileName();

            using (var deleter = new AutoDeleter(tempFile))
            {
                File.Delete(tempFile);  // Firebird will b0rk if it has to create a database where a file already exists
                deleter.Add(tempResources);
                var connectionString = GetConnectionStringToTempDatabaseAt(tempFile);

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


                using (var connection = new FbConnection(connectionString))
                {
                    FirebirdProcessor processor;
                    var runner = CreateFirebirdEmbeddedRunnerFor(connection, runnerContext, out processor);
                    runner.Up(new CreateTableMigration());
                    runner.Up(new AddDataMigration(1));
                    runner.Up(new AddDataMigration(2));
                    runner.Up(new AddDataMigration(3));
                    //---------------Assert Precondition----------------
                    connection.Open();
                    using (var cmd = new FbCommand("select count(*) as \"TheCount\" from \"TheTable\"", connection))
                    {
                        using (var reader = cmd.ExecuteReader())
                        {
                            Assert.IsTrue(reader.Read());
                            Assert.AreEqual(3, Convert.ToInt32(reader["TheCount"]));
                        }
                    }
                    //---------------Execute Test ----------------------
                    Exception thrown = null;
                    try
                    {
                        runner.Up(new RenameTableMigration());
                    }
                    catch (Exception ex)
                    {
                        thrown = ex;
                    }

                    //---------------Test Result -----------------------
                    Assert.IsNull(thrown);
                }
            }
        }
Example #15
0
        public void Migrate(Action <IMigrationRunner> runnerAction)
        {
            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 0
            };
            var factory          = new FluentMigrator.Runner.Processors.MigrationProcessorFactoryProvider().GetFactory(_dbType);
            var announcer        = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var migrationContext = new RunnerContext(announcer);
            var processor        = factory.Create(_connectionString, announcer, options);
            var runner           = new MigrationRunner(_migrationAssembly, migrationContext, processor);

            runnerAction(runner);
        }
Example #16
0
        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();
            }
        }
Example #17
0
        private void DoMigrationsWithOptions(MigrationOptions options, Action <MigrationRunner> call)
        {
            var announcer = new TextWriterAnnouncer(_textWriterAction)
            {
                ShowSql = true
            };
            var context   = new RunnerContext(announcer);
            var factory   = new T();
            var processor = factory.Create(_connectionString, announcer, options);
            var runner    = new MigrationRunner(_assemblyToLoadMigrationsFrom, context, processor);

            call(runner);
        }
Example #18
0
        public void ExecuteMigrations()
        {
            IAnnouncer     announcer        = new TextWriterAnnouncer(Console.Out);
            IRunnerContext migrationContext = new RunnerContext(announcer)
            {
                Connection = Settings.Default.BulkDemoConnection,
                Database   = "sqlserver",
                Target     = "BulkDemo.Test"
            };

            TaskExecutor executor = new TaskExecutor(migrationContext);

            executor.Execute();
        }
Example #19
0
        public void Migrate(Action <IMigrationRunner> runnerAction)
        {
            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 0
            };
            var factory          = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory();
            var assembly         = Assembly.GetExecutingAssembly();
            var announcer        = new TextWriterAnnouncer(s => System.Diagnostics.Debug.WriteLine(s));
            var migrationContext = new RunnerContext(announcer);
            var processor        = factory.Create(this._connectionString, announcer, options);
            var runner           = new MigrationRunner(assembly, migrationContext, processor);

            runnerAction(runner);
        }
        private MigrationRunner GetMigrator()
        {
            var announcer = new NullAnnouncer();

            var migrationContext = new RunnerContext(announcer);
            var options          = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory   = new FluentMigrator.Runner.Processors.Oracle.OracleProcessorFactory();
            var processor = factory.Create(this.connectionString, announcer, options);
            var runner    = new MigrationRunner(migrationsAssembly, migrationContext, processor);

            return(runner);
        }
Example #21
0
        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);
        }
Example #22
0
        private RunnerContext GetMigrationContext(long version, string profile)
        {
            var context = new RunnerContext(Announcer);

            if (version > -1)
            {
                context.Version = version;
            }
            if (!string.IsNullOrEmpty(profile))
            {
                context.Profile = profile;
            }
            return(context);
        }
Example #23
0
        private static TaskExecutor MakeTask(string task)
        {
            var announcer     = new TextWriterAnnouncer(System.Console.Out);
            var runnerContext = new RunnerContext(announcer)
            {
                Database   = "Firebird",
                Connection = IntegrationTestOptions.Firebird.ConnectionString,
                Target     = Assembly.GetExecutingAssembly().Location,
                Namespace  = "FluentMigrator.Tests.Integration.Migrations.Firebird.FirstVersion",
                Task       = task,
            };

            return(new TaskExecutor(runnerContext));
        }
Example #24
0
        private MigrationRunner GetMigrator()
        {
            var announcer = new TextWriterAnnouncer(s => logMethod.Invoke(s));

            var migrationContext = new RunnerContext(announcer);
            var options          = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var factory   = new FluentMigrator.Runner.Processors.SqlServer.SqlServer2008ProcessorFactory();
            var processor = factory.Create(this.connectionString, announcer, options);
            var runner    = new MigrationRunner(migrationsAssembly, migrationContext, processor);

            return(runner);
        }
Example #25
0
        public void Run(string migrationsDllPath, string connectionString, string dbType)
        {
            var announcer        = new FluentMigrator.Runner.Announcers.NullAnnouncer();
            var migrationContext = new RunnerContext(announcer)
            {
                Database    = dbType,
                Connection  = connectionString,
                Target      = migrationsDllPath,
                PreviewOnly = false
            };
            var taskExecuter = new TaskExecutor(migrationContext);

            taskExecuter.Execute();
        }
Example #26
0
        protected TaskExecutor MakeTask(string task, string migrationsNamespace)
        {
            var announcer     = new TextWriterAnnouncer(System.Console.Out);
            var runnerContext = new RunnerContext(announcer)
            {
                Database   = "Firebird",
                Connection = IntegrationTestOptions.Firebird.ConnectionString,
                Targets    = new[] { Assembly.GetExecutingAssembly().Location },
                Namespace  = migrationsNamespace,
                Task       = task
            };

            return(new TaskExecutor(runnerContext));
        }
        private void Execute(string task)
        {
            tbAnnouncer.Clear();

            var version = (int)numVersion.Value;
            var steps   = (int)numSteps.Value;
            var tags    = new List <string>();
            var profile = tbProfile.Text;

            foreach (var item in lbTags.SelectedItems)
            {
                tags.Add(item.ToString());
            }

            var announcer = new TextWriterAnnouncer(new TextBoxStreamWriter(tbAnnouncer));

            announcer.Heading("Migrate database");

            var runnerContext = new RunnerContext(announcer)
            {
                Database   = "SqlServer2008",
                Connection = ConfigurationManager.ConnectionStrings["FluentMigrator"].ConnectionString,

                Target           = "DatabaseProject.dll",
                PreviewOnly      = false,
                Namespace        = "DatabaseProject",
                NestedNamespaces = true,
                Task             = task,
                Version          = version,
                Steps            = steps,
                Tags             = tags,
                //WorkingDirectory = "C:\\temp",
                Profile = profile,
                Timeout = 30,
                TransactionPerSession = true
            };

            var executor = new TaskExecutor(runnerContext);


            try
            {
                executor.Execute();
            }
            catch (Exception ex)
            {
                tbAnnouncer.AppendText("Exception: " + ex.Message);
            }
        }
Example #28
0
        private static void RunMigrations()
        {
            var announcer = new ConsoleAnnouncer()
            {
                ShowSql = true
            };
            var runner = new RunnerContext(announcer)
            {
                Connection = DatabaseSettings.Instance.BuildConnectionString(),
                Database   = Enum.GetName(typeof(DatabaseType), (DatabaseType)DatabaseSettings.Instance.Type).ToLower(),
                Targets    = new string [] { typeof(ModelHelper).Assembly.Location },
            };

            new TaskExecutor(runner).Execute();
        }
        public static void MigrateSchema()
        {
            log.Debug("Applying any required schema updates");
            var announcer = new MigrationAnnoucer(message => log.Debug(message), message => log.Error(message));
            var runner    = new RunnerContext(announcer)
            {
                Database   = "SqlServer",
                Connection = SessionProvider.ConnectionSettings.ConnectionString,
                Target     =
                    Path.Combine(AppDomain.CurrentDomain.SetupInformation.PrivateBinPath,
                                 Assembly.GetExecutingAssembly().GetName().Name + ".dll")
            };

            new TaskExecutor(runner).Execute();
        }
Example #30
0
        private static MigrationRunner GetRunner(string connectionString, IMigrationProcessorFactory factory)
        {
            var announcer        = new NullAnnouncer();
            var assembly         = Assembly.GetExecutingAssembly();
            var migrationContext = new RunnerContext(announcer)
            {
                Namespace = "Migrations"
            };
            var options = new MigrationOptions {
                PreviewOnly = false, Timeout = 60
            };
            var processor = factory.Create(connectionString, announcer, options);

            return(new MigrationRunner(assembly, migrationContext, processor));
        }
Example #31
0
 public static int Main(string[] args)
 {
     var context1 = new RunnerContext (
         "urn:schemas-upnp-org:service:ContentDirectory:1",
         "ContentDirectory",
         "Mono.Upnp.Dcp.MediaServer1.ContentDirectory1",
         "/home/scott/Desktop/upnpresources/standardizeddcps/MediaServer_1 and MediaRenderer_1/xml data files/service/ContentDirectory1.xml");
     //            var context2 = new RunnerContext (
     //                "urn:schemas-upnp-org:service:ConnectionManager:1",
     //                "ConnectionManager",
     //                "Mono.Upnp.Dcp.MediaServer1",
     //                "/home/scott/Desktop/upnpresources/standardizeddcps/MediaServer_1 and MediaRenderer_1/xml data files/service/ConnectionManager1.xml");
     new ClientRunner (context1).Run ();
     //new ClientRunner (context2).Run ();
     return 0;
 }
        static public void Run(RunnerContext context, TextWriter writer = null) {
            if (writer == null)
                writer = new StringWriter();

            IAnnouncer announcer = new DataWriter(writer);
            var runnerContext = new FluentMigrator.Runner.Initialization.RunnerContext(announcer)
            {
                ApplicationContext = context.ApplicationContext,
                Database = context.Database,
                Connection = context.Connection,
                Targets = context.Targets,
                PreviewOnly = context.PreviewOnly,
                Namespace = context.Namespace,
                NestedNamespaces = context.NestedNamespaces,
                Task = context.Task,
                Version = context.Version,
                Steps = context.Steps,
                WorkingDirectory = context.WorkingDirectory,
                Profile = context.Profile,
                Tags = context.Tags,
                Timeout = context.Timeout,
                TransactionPerSession = context.TransactionPerSession,
            };

            try {
                new TaskExecutor(runnerContext).Execute();
            } catch (ProcessorFactoryNotFoundException ex) {
                announcer.Error("While executing migrations the following error was encountered: {0}", ex.Message);
                throw;
            } catch (Exception e) {
                announcer.Error("While executing migrations the following error was encountered: {0}, {1}", e.Message, e.StackTrace);
                throw;
            } finally {
                //if (outputWriter != null)
                //    outputWriter.Dispose();
            }
        }
Example #33
0
 private static RunnerContext BuildRunnerContext(IAnnouncer announcer, string profile)
 {
     var runnerContext = new RunnerContext(announcer) { Profile = profile };
     return runnerContext;
 }