Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        public IMigrationProcessor GetMigrationProcessor(DatabaseType databaseType, string connectionString, RunnerContext context)
        {
            var announcer = new NullAnnouncer();
            var options   = new MigrationProcessorOptions(context);

            var factory   = GetProcessorFactory(databaseType);
            var processor = factory.Create(connectionString, announcer, options);

            return(processor);
        }