Beispiel #1
0
 public TaskExecutor(
     [NotNull] IRunnerContext runnerContext,
     [CanBeNull] IConnectionStringProvider connectionStringProvider,
     [NotNull] AssemblyLoaderFactory assemblyLoaderFactory,
     // ReSharper disable once UnusedParameter.Local
     MigrationProcessorFactoryProvider factoryProvider)
     : this(
         runnerContext,
         assemblyLoaderFactory,
         connectionStringProvider)
 {
 }
Beispiel #2
0
        private IMigrationProcessorFactory GetMigrationProcessorFactory(IDatabaseConfig databaseConfig)
        {
            string processorName;
            var    vendor = databaseConfig.Vendor;

            if (!DatabaseProcessorMapping.TryGetValue(vendor.ToUpper(), out processorName))
            {
                throw new Exception(string.Format("The vendor '{0}' processor type has not been set up for Habanero Test Migrations.", vendor));
            }
            var migrationProcessorFactoryProvider = new MigrationProcessorFactoryProvider();

            return(migrationProcessorFactoryProvider.GetFactory(processorName));
        }
Beispiel #3
0
        private static IMigrationProcessor BuildMigrationProcessor(string database, string connection, int timeout, IAnnouncer announcer, bool previewOnly)
        {
            var processorFactoryProvider = new MigrationProcessorFactoryProvider();
            var processorFactory = processorFactoryProvider.GetFactory(database);

            var processorOptions = new ProcessorOptions
            {
                Timeout = timeout,
                PreviewOnly = previewOnly
            };

            var processor = processorFactory.Create(connection, announcer, processorOptions);
            return processor;
        }
Beispiel #4
0
        public TaskExecutor(IRunnerContext runnerContext, AssemblyLoaderFactory assemblyLoaderFactory, MigrationProcessorFactoryProvider processorFactoryProvider)
        {
            if (runnerContext == null)
            {
                throw new ArgumentNullException("runnerContext");
            }
            if (assemblyLoaderFactory == null)
            {
                throw new ArgumentNullException("assemblyLoaderFactory");
            }

            RunnerContext            = runnerContext;
            AssemblyLoaderFactory    = assemblyLoaderFactory;
            ProcessorFactoryProvider = processorFactoryProvider;
        }
Beispiel #5
0
        private static IMigrationProcessor BuildMigrationProcessor(string database, string connection, int timeout, IAnnouncer announcer, bool previewOnly)
        {
            var processorFactoryProvider = new MigrationProcessorFactoryProvider();
            var processorFactory         = processorFactoryProvider.GetFactory(database);

            var processorOptions = new ProcessorOptions
            {
                Timeout     = timeout,
                PreviewOnly = previewOnly
            };

            var processor = processorFactory.Create(connection, announcer, processorOptions);

            return(processor);
        }
        protected override Result <MigrationResult> ExecuteCore(Session session, MigrationContract contract)
        {
            if (contract == null)
            {
                throw new ArgumentNullException(nameof(contract));
            }

            var announcer        = new TextWriterAnnouncer(Logger.Debug);
            var migrationContext = new RunnerContext(announcer)
            {
                NestedNamespaces = true
            };

            var factoryProvider = new MigrationProcessorFactoryProvider();
            var factory         = factoryProvider.GetFactory(contract.DatabaseType);

            var migrationOptions = new ProcessorOptions
            {
                PreviewOnly      = false,
                ProviderSwitches = null,
                Timeout          = contract.Timeout
            };

            using (var processor = factory.Create(contract.AdminConnectionString, announcer, migrationOptions))
            {
                var migrationAssemblies = _migrationAssemblies.Select(x => x.Assembly);

                var assemblies = new AssemblyCollection(migrationAssemblies);
                var runner     = new MigrationRunner(assemblies, migrationContext, processor);

                runner.Conventions.TypeIsMigration  = IsTypeMigration;
                runner.Conventions.GetMigrationInfo = GetPlatformMigrationInfo;

                Logger.Info("Start migration");
                Logger.Info($"-> Database type: {contract.DatabaseType}");
                Logger.Info($"-> Command timeout: {migrationOptions.Timeout}");
                Logger.Info($"-> Assemblies to scan: {string.Join("; ", assemblies.Assemblies.Select(x => x.GetName().Name))}");

                runner.MigrateUp(true);
            }

            var migrationResult = new MigrationResult(_migrationAssemblies);

            return(Success(migrationResult));
        }
 public void Setup()
 {
     _migrationProcessorFactoryProvider = new MigrationProcessorFactoryProvider();
 }
Beispiel #8
0
 public CustomTaskExecutor(IRunnerContext runnerContext, AssemblyLoaderFactory assemblyLoaderFactory, MigrationProcessorFactoryProvider processorFactoryProvider) : base(runnerContext, assemblyLoaderFactory, processorFactoryProvider)
 {
 }