예제 #1
0
        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);
        }
예제 #2
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);
        }