Example #1
0
 public MigrationContext(IMigrationConventions conventions, IQuerySchema querySchema, IAssemblyCollection migrationAssemblies)
 {
     Conventions         = conventions;
     Expressions         = new List <IMigrationExpression>();
     QuerySchema         = querySchema;
     MigrationAssemblies = migrationAssemblies;
 }
Example #2
0
        public MigrationRunner(IAssemblyCollection assemblies, IRunnerContext runnerContext, IMigrationProcessor processor)
        {
            _migrationAssemblies  = assemblies;
            _announcer            = runnerContext.Announcer;
            Processor             = processor;
            _stopWatch            = runnerContext.StopWatch;
            ApplicationContext    = runnerContext.ApplicationContext;
            TransactionPerSession = runnerContext.TransactionPerSession;

            SilentlyFail     = false;
            CaughtExceptions = null;

            Conventions = new MigrationConventions();
            if (!string.IsNullOrEmpty(runnerContext.WorkingDirectory))
            {
                Conventions.GetWorkingDirectory = () => runnerContext.WorkingDirectory;
            }

            _migrationScopeHandler = new MigrationScopeHandler(Processor);
            _migrationValidator    = new MigrationValidator(_announcer, Conventions);
            MigrationLoader        = new DefaultMigrationInformationLoader(Conventions, _migrationAssemblies, runnerContext.Namespace, runnerContext.NestedNamespaces, runnerContext.Tags);
            ProfileLoader          = new ProfileLoader(runnerContext, this, Conventions);
            MaintenanceLoader      = new MaintenanceLoader(_migrationAssemblies, runnerContext.Tags, Conventions);

            if (runnerContext.NoConnection)
            {
                VersionLoader = new ConnectionlessVersionLoader(this, _migrationAssemblies, Conventions, runnerContext.StartVersion, runnerContext.Version);
            }
            else
            {
                VersionLoader = new VersionLoader(this, _migrationAssemblies, Conventions);
            }
        }
Example #3
0
        protected override IUnitsModel GetModel()
        {
            IAssemblyCollection collection = ProfilingViewModel.Application.ServiceContainer.Resolve <IAssemblyCollection>();
            AssembliesModel     model      = new AssembliesModel(collection);

            return(model);
        }
Example #4
0
 public MigrationRunner(
     [NotNull] IAssemblyCollection assemblies, [NotNull] IRunnerContext runnerContext,
     [NotNull] IMigrationProcessor processor, IVersionTableMetaData versionTableMetaData = null,
     [CanBeNull] IMigrationRunnerConventions migrationRunnerConventions = null)
     : this(assemblies, runnerContext, processor, versionTableMetaData, migrationRunnerConventions, conventionSet : null, migrationScopeHandler : null)
 {
 }
Example #5
0
        protected override void Initialize()
        {
            base.Initialize();
            IAssemblyCollection unitCollection = Session.Daemon.Container.Resolve <IAssemblyCollection>();

            Model = new UnitCollectionModel <AssemblyInfo>(unitCollection);
        }
Example #6
0
 // ReSharper disable once UnusedMember.Local
 public ExecuteEmbeddedAutoSqlScriptExpression(IAssemblyCollection assemblyCollection, Type migrationType, IList <string> databaseNames, MigrationDirection direction)
 {
     _embeddedResourceProvider = new DefaultEmbeddedResourceProvider(assemblyCollection);
     MigrationType             = migrationType;
     DatabaseNames             = databaseNames;
     Direction = direction;
 }
        internal FxVersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies,
                                 IConventionSet conventionSet,
                                 IMigrationRunnerConventions conventions,
                                 IRunnerContext runnerContext,
                                 IVersionTableMetaData versionTableMetaData = null,
                                 string resource = "")
        {
            _conventionSet = conventionSet;
            _processor     = runner.Processor;

            Runner     = runner;
            Assemblies = assemblies;

            Conventions                 = conventions;
            VersionTableMetaData        = versionTableMetaData ?? CreateVersionTableMetaData(runnerContext);
            VersionMigration            = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration      = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration      = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);
            VersionResourceMigration    = new VersionResourceMigration(VersionTableMetaData);

            VersionTableMetaData.ApplicationContext = runnerContext.ApplicationContext;

            Resource = resource;

            LoadVersionInfo();
        }
Example #8
0
        private void PerstListButton_Click(object sender, EventArgs e)
        {
            IAssemblyCollection assemblyCollection = this.assemblyManager.Assemblies;
            List <IAssembly>    assemblies         = new List <IAssembly>(assemblyCollection.Count);

            foreach (IAssembly assembly in assemblyCollection)
            {
                assemblies.Add(assembly);
            }
            messages = new StringBuilder();
            ITranslator translator = this.translatorManager.CreateDisassembler(null, null);

            foreach (IAssembly assembly in assemblies)
            {
                if (!assembly.Location.StartsWith("%SystemRoot%") &&
                    !assembly.Location.StartsWith("%ProgramFiles%"))
                {
                    foreach (IModule module in assembly.Modules)
                    {
                        foreach (ITypeDeclaration type in module.Types)
                        {
                            if (!type.Namespace.StartsWith("Perst"))
                            {
                                processType(type);
                            }
                        }
                    }
                }
            }
            message(messages.Length != 0 ? messages.ToString() : "No bugs detected");
        }
Example #9
0
 public MigrationRunner(
     IAssemblyCollection assemblies, IRunnerContext runnerContext,
     IMigrationProcessor processor, IVersionTableMetaData versionTableMetaData = null,
     IMigrationRunnerConventions migrationRunnerConventions = null)
     : this(assemblies, runnerContext, processor, versionTableMetaData, migrationRunnerConventions, conventionSet : null)
 {
 }
Example #10
0
        public void Invoke(IPackagesCollection packages, IAssemblyCollection assemblies, IFileSystem fileSystem)
        {
            var        scriptType = Assembly.GetExportedTypes().First(t => t.Name == "SetupScript");
            MethodInfo runMethod  = scriptType.GetMethod("Run", BindingFlags.Public | BindingFlags.Static);

            runMethod.Invoke(null, new object[] { packages, assemblies, fileSystem });
        }
        public MigrationRunner(IAssemblyCollection assemblies, IRunnerContext runnerContext, IMigrationProcessor processor)
        {
            _migrationAssemblies = assemblies;
            _announcer = runnerContext.Announcer;
            Processor = processor;
            _stopWatch = runnerContext.StopWatch;
            RunnerContext = runnerContext;

            SilentlyFail = false;
            CaughtExceptions = null;

            Conventions = new MigrationConventions();
            if (!string.IsNullOrEmpty(runnerContext.WorkingDirectory))
                Conventions.GetWorkingDirectory = () => runnerContext.WorkingDirectory;

            _migrationScopeHandler = new MigrationScopeHandler(Processor);
            _migrationValidator = new MigrationValidator(_announcer, Conventions);
            MigrationLoader = new DefaultMigrationInformationLoader(Conventions, _migrationAssemblies, runnerContext.Namespace, runnerContext.NestedNamespaces, runnerContext.Tags);
            ProfileLoader = new ProfileLoader(runnerContext, this, Conventions);
            MaintenanceLoader = new MaintenanceLoader(_migrationAssemblies, runnerContext.Tags, Conventions);

            if (runnerContext.NoConnection){
                VersionLoader = new ConnectionlessVersionLoader(this, _migrationAssemblies, Conventions, runnerContext.StartVersion, runnerContext.Version);
            }
            else{
                VersionLoader = new VersionLoader(this, _migrationAssemblies, Conventions);
            }
        }
Example #12
0
        internal ConnectionlessVersionLoader(
            IMigrationRunner runner,
            IAssemblyCollection assemblies,
            IConventionSet conventionSet,
            IMigrationRunnerConventions conventions,
            IRunnerContext runnerContext,
            IVersionTableMetaData versionTableMetaData = null)
        {
            _migrationInformationLoader = runner.MigrationLoader;
            _processor = runner.Processor;

            Runner        = runner;
            Assemblies    = assemblies;
            Conventions   = conventions;
            StartVersion  = runnerContext.StartVersion;
            TargetVersion = runnerContext.Version;

            VersionInfo          = new VersionInfo();
            VersionTableMetaData = versionTableMetaData ??
                                   (IVersionTableMetaData)Activator.CreateInstance(assemblies.Assemblies.GetVersionTableMetaDataType(
                                                                                       Conventions, runnerContext));
            VersionMigration            = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration      = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration      = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            if (VersionTableMetaData is DefaultVersionTableMetaData defaultMetaData)
            {
                conventionSet.SchemaConvention?.Apply(defaultMetaData);
            }

            LoadVersionInfo();
        }
Example #13
0
        private IMigrationProcessor InitializeProcessor(IAssemblyCollection assemblyCollection)
#endif
        {
            if (RunnerContext.Timeout == 0)
            {
                RunnerContext.Timeout = 30; // Set default timeout for command
            }

#if !COREFX
            var connectionString = LoadConnectionString(assemblyCollection);
#endif
            var processorFactory = ProcessorFactoryProvider.GetFactory(RunnerContext.Database);

            if (processorFactory == null)
            {
                throw new ProcessorFactoryNotFoundException(string.Format("The provider or dbtype parameter is incorrect. Available choices are {0}: ", ProcessorFactoryProvider.ListAvailableProcessorTypes()));
            }

            var processor = processorFactory.Create(connectionString, RunnerContext.Announcer, new ProcessorOptions
            {
                PreviewOnly      = RunnerContext.PreviewOnly,
                Timeout          = RunnerContext.Timeout,
                ProviderSwitches = RunnerContext.ProviderSwitches
            });

            return(processor);
        }
Example #14
0
 public MigrationContext(IQuerySchema querySchema, IAssemblyCollection migrationAssemblies, object context, string connection)
 {
     Expressions             = new List <IMigrationExpression>();
     QuerySchema             = querySchema;
     MigrationAssemblies     = migrationAssemblies;
     this.ApplicationContext = context;
     this.Connection         = connection;
 }
 public void SetDependencies(IAssemblyCollection assemblies)
 {
     _assemblies = assemblies;
     foreach (ModuleInfo unit in this)
     {
         unit.SetDependencies(_assemblies);
     }
 }
 public ExecuteEmbeddedSqlScriptExpression([NotNull] IAssemblyCollection assemblyCollection)
 {
     MigrationAssemblies        = assemblyCollection;
     _embeddedResourceProviders = new IEmbeddedResourceProvider[]
     {
         new DefaultEmbeddedResourceProvider(assemblyCollection),
     };
 }
 public MigrationContext(IMigrationConventions conventions, IQuerySchema querySchema, IAssemblyCollection migrationAssemblies, object context, string connection)
 {
     Conventions = conventions;
     Expressions = new List<IMigrationExpression>();
     QuerySchema = querySchema;
     MigrationAssemblies = migrationAssemblies;
     this.ApplicationContext = context;
     this.Connection = connection;
 }
 public DefaultMigrationInformationLoader(IMigrationConventions conventions, IAssemblyCollection assemblies, string @namespace,
                                          bool loadNestedNamespaces, IEnumerable <string> tagsToMatch)
 {
     Conventions          = conventions;
     Assemblies           = assemblies;
     Namespace            = @namespace;
     LoadNestedNamespaces = loadNestedNamespaces;
     TagsToMatch          = tagsToMatch ?? new string[] {};
 }
 public DefaultMigrationInformationLoader(IMigrationConventions conventions, IAssemblyCollection assemblies, string @namespace,
                                          bool loadNestedNamespaces, IEnumerable<string> tagsToMatch)
 {
     Conventions = conventions;
     Assemblies = assemblies;
     Namespace = @namespace;
     LoadNestedNamespaces = loadNestedNamespaces;
     TagsToMatch = tagsToMatch ?? new string[] {};
 }
 public AssembliesModel(IAssemblyCollection units)
 {
     Units   = units;
     Columns = new List <GridViewDynamicColumn>
     {
         new GridViewDynamicColumn("Name", "Name", FilterByName),
         new GridViewDynamicColumn("AppDomain", "AppDomain.Name", FilterByAppDomain)
     };
 }
Example #21
0
 public DefaultMigrationInformationLoader(IMigrationRunnerConventions conventions, IAssemblyCollection assemblies, string @namespace,
                                          bool loadNestedNamespaces, IEnumerable <string> tagsToMatch)
 {
     Conventions          = conventions;
     Assemblies           = assemblies;
     Namespace            = @namespace;
     LoadNestedNamespaces = loadNestedNamespaces;
     _tagsToMatch         = tagsToMatch as IReadOnlyCollection <string> ?? tagsToMatch?.ToArray() ?? Array.Empty <string>();
     _source = new MigrationSource(new AssemblySource(() => assemblies), conventions);
 }
Example #22
0
        public IEnumerable<IMigration> FindProfilesIn(IAssemblyCollection assemblies, string profile)
        {
            IEnumerable<Type> matchedTypes = assemblies.GetExportedTypes()
                .Where(t => Conventions.TypeIsProfile(t) && t.GetOneAttribute<ProfileAttribute>().ProfileName.ToLower() == profile.ToLower())
                .OrderBy(x => x.Name);

            foreach (Type type in matchedTypes)
            {
                yield return type.Assembly.CreateInstance(type.FullName) as IMigration;
            }
        }
Example #23
0
        public IEnumerable <IMigration> FindProfilesIn(IAssemblyCollection assemblies, string profile)
        {
            IEnumerable <Type> matchedTypes = assemblies.GetExportedTypes()
                                              .Where(t => Conventions.TypeIsProfile(t) && t.GetOneAttribute <ProfileAttribute>().ProfileName.ToLower() == profile.ToLower())
                                              .OrderBy(x => x.Name);

            foreach (Type type in matchedTypes)
            {
                yield return(type.Assembly.CreateInstance(type.FullName) as IMigration);
            }
        }
Example #24
0
        private string LoadConnectionString(IAssemblyCollection assemblyCollection)
        {
            var singleAssembly         = (assemblyCollection != null && assemblyCollection.Assemblies != null && assemblyCollection.Assemblies.Length == 1) ? assemblyCollection.Assemblies[0] : null;
            var singleAssemblyLocation = singleAssembly != null ? singleAssembly.Location : string.Empty;

            var manager = new ConnectionStringManager(new NetConfigManager(), RunnerContext.Announcer, RunnerContext.Connection,
                                                      RunnerContext.ConnectionStringConfigPath, singleAssemblyLocation,
                                                      RunnerContext.Database);

            manager.LoadConnectionString();
            return(manager.ConnectionString);
        }
Example #25
0
        private string LoadConnectionString(IAssemblyCollection assemblyCollection)
        {
            var singleAssembly         = (assemblyCollection != null && assemblyCollection.Assemblies != null && assemblyCollection.Assemblies.Length == 1) ? assemblyCollection.Assemblies[0] : null;
            var singleAssemblyLocation = singleAssembly != null ? singleAssembly.Location : string.Empty;

            var connectionString = ConnectionStringProvider.GetConnectionString(
                RunnerContext.Announcer,
                RunnerContext.Connection,
                RunnerContext.ConnectionStringConfigPath,
                singleAssemblyLocation,
                RunnerContext.Database);

            return(connectionString);
        }
Example #26
0
        internal AssemblyLoader(ConfigCompilation compilation, IReadOnlyFileSystem fileSystem, IAssemblyCollection assemblies, INamespacesCollection namespaces)
        {
            _compilation = compilation;
            _fileSystem  = fileSystem;
            _assemblies  = assemblies;
            _namespaces  = namespaces;

            // Add the Core modules
            _moduleAssemblies.Add(Assembly.GetAssembly(typeof(Engine)));

            // Manually resolve included assemblies
            AppDomain.CurrentDomain.AssemblyResolve += OnAssemblyResolve;
            AppDomain.CurrentDomain.SetupInformation.PrivateBinPathProbe = string.Empty; // non-null means exclude application base path
        }
Example #27
0
        public VersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies, IMigrationConventions conventions)
        {
            Runner = runner;
            Processor = runner.Processor;
            Assemblies = assemblies;

            Conventions = conventions;
            VersionTableMetaData = GetVersionTableMetaData();
            VersionMigration = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
Example #28
0
        public MigrationContext([NotNull] IQuerySchema querySchema, [NotNull] IAssemblyCollection migrationAssemblies, object context, string connection)
        {
            // ReSharper disable VirtualMemberCallInConstructor
            QuerySchema         = querySchema;
            MigrationAssemblies = migrationAssemblies;
            ApplicationContext  = context;
            // ReSharper restore VirtualMemberCallInConstructor
            Connection = connection;
            var services = new ServiceCollection();

            services
            .AddScoped(sp => migrationAssemblies)
            .AddScoped <IEmbeddedResourceProvider, DefaultEmbeddedResourceProvider>();
            ServiceProvider = services.BuildServiceProvider();
        }
Example #29
0
        public VersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies, IMigrationConventions conventions)
        {
            Runner     = runner;
            Processor  = runner.Processor;
            Assemblies = assemblies;

            Conventions                 = conventions;
            VersionTableMetaData        = GetVersionTableMetaData();
            VersionMigration            = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration      = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration      = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
 public MaintenanceLoader(IAssemblyCollection assemblyCollection, IEnumerable <string> tags, IMigrationConventions conventions)
 {
     tags         = tags ?? new string[] {};
     _maintenance = (
         from a in assemblyCollection.Assemblies
         from type in a.GetExportedTypes()
         let stage = conventions.GetMaintenanceStage(type)
                     where stage != null
                     where conventions.TypeHasMatchingTags(type, tags)
                     let migration = (IMigration)Activator.CreateInstance(type)
                                     group migration by stage
         ).ToDictionary(
         g => g.Key.Value,
         g => (IList <IMigration>)g.OrderBy(m => m.GetType().Name).ToArray()
         );
 }
 public MaintenanceLoader(IAssemblyCollection assemblyCollection, IEnumerable<string> tags, IMigrationConventions conventions)
 {
     tags = tags ?? new string[] {};
     _maintenance = (
         from a in assemblyCollection.Assemblies
         from type in a.GetExportedTypes()
         let stage = conventions.GetMaintenanceStage(type)
         where stage != null
         where conventions.TypeHasMatchingTags(type, tags)
         let migration = (IMigration)Activator.CreateInstance(type)
         group migration by stage
     ).ToDictionary(
         g => g.Key.Value,
         g => (IList<IMigration>)g.OrderBy(m => m.GetType().Name).ToArray()
     );
 }
Example #32
0
        internal AssemblyLoader(IReadOnlyFileSystem fileSystem, IAssemblyCollection assemblyCollection, AssemblyResolver assemblyResolver)
        {
            _fileSystem = fileSystem;
            _assemblyCollection = assemblyCollection;
            _assemblyResolver = assemblyResolver;

            // Get the location of the entry assembly
            string entryAssemblyLocation = Assembly.GetEntryAssembly()?.Location;
            DirectoryPath entryAssemblyPath = entryAssemblyLocation == null
                ? new DirectoryPath(Environment.CurrentDirectory)
                : new FilePath(entryAssemblyLocation).Directory;
            _entryAssemblyDirectory = _fileSystem.GetDirectory(entryAssemblyPath);

            // Add the Core modules
            DirectAssemblies.Add(Assembly.GetAssembly(typeof(Engine)));
        }
Example #33
0
        public MigrationRunner(
            [NotNull] IAssemblyCollection assemblies, [NotNull] IRunnerContext runnerContext,
            [NotNull] IMigrationProcessor processor, [CanBeNull] IVersionTableMetaData versionTableMetaData,
            [CanBeNull] IMigrationRunnerConventions migrationRunnerConventions, [CanBeNull] IConventionSet conventionSet,
            [CanBeNull] IMigrationScopeManager migrationScopeHandler = null)
        {
            _migrationAssemblies = assemblies;
            _logger           = new AnnouncerFluentMigratorLogger(runnerContext.Announcer);
            _stopWatch        = runnerContext.StopWatch;
            _processorOptions = new ProcessorOptions(runnerContext);

            Processor     = processor;
            RunnerContext = runnerContext;

            var migrationRunnerConventionsAccessor = new AssemblySourceMigrationRunnerConventionsAccessor(
                serviceProvider: null,
                new AssemblySource(() => assemblies));

            Conventions = migrationRunnerConventions ?? migrationRunnerConventionsAccessor.MigrationRunnerConventions;

            var convSet = conventionSet ?? new DefaultConventionSet(runnerContext);

            _migrationScopeManager = migrationScopeHandler ?? new MigrationScopeHandler(Processor);
            _migrationValidator    = new MigrationValidator(_logger, convSet);
            MigrationLoader        = new DefaultMigrationInformationLoader(Conventions, _migrationAssemblies,
                                                                           runnerContext.Namespace,
                                                                           runnerContext.NestedNamespaces, runnerContext.Tags);
            ProfileLoader     = new ProfileLoader(runnerContext, this, Conventions);
            MaintenanceLoader = new MaintenanceLoader(_migrationAssemblies, runnerContext.Tags, Conventions);

            if (runnerContext.NoConnection)
            {
                _versionLoader = new Lazy <IVersionLoader>(
                    () => new ConnectionlessVersionLoader(
                        this,
                        _migrationAssemblies,
                        convSet,
                        Conventions,
                        runnerContext,
                        versionTableMetaData));
            }
            else
            {
                _versionLoader = new Lazy <IVersionLoader>(
                    () => new VersionLoader(this, _migrationAssemblies, convSet, Conventions, runnerContext, versionTableMetaData));
            }
        }
Example #34
0
        public MaintenanceLoader(IAssemblyCollection assemblyCollection, IEnumerable <string> tags, IMigrationRunnerConventions conventions)
        {
            var tagsList = tags?.ToArray() ?? new string[0];

            _maintenance = (
                from a in assemblyCollection.Assemblies
                from type in a.GetExportedTypes()
                let stage = conventions.GetMaintenanceStage(type)
                            where stage != null
                            where conventions.HasRequestedTags(type, tagsList, false)
                            let migration = (IMigration)Activator.CreateInstance(type)
                                            group migration by stage.GetValueOrDefault()
                ).ToDictionary(
                g => g.Key,
                g => (IList <IMigration>)g.OrderBy(m => m.GetType().Name).ToArray()
                );
        }
Example #35
0
        internal AssemblyLoader(IReadOnlyFileSystem fileSystem, IAssemblyCollection assemblyCollection, AssemblyResolver assemblyResolver)
        {
            _fileSystem         = fileSystem;
            _assemblyCollection = assemblyCollection;
            _assemblyResolver   = assemblyResolver;

            // Get the location of the entry assembly
            string        entryAssemblyLocation = Assembly.GetEntryAssembly()?.Location;
            DirectoryPath entryAssemblyPath     = entryAssemblyLocation == null
                ? new DirectoryPath(Environment.CurrentDirectory)
                : new FilePath(entryAssemblyLocation).Directory;

            _entryAssemblyDirectory = _fileSystem.GetDirectory(entryAssemblyPath);

            // Add the Core modules
            DirectAssemblies.Add(Assembly.GetAssembly(typeof(Engine)));
        }
Example #36
0
        public VersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies,
                             IConventionSet conventionSet,
                             IMigrationRunnerConventions conventions,
                             IVersionTableMetaData versionTableMetaData = null)
        {
            _conventionSet = conventionSet;
            Runner         = runner;
            Processor      = runner.Processor;
            Assemblies     = assemblies;

            Conventions                 = conventions;
            VersionTableMetaData        = versionTableMetaData ?? GetVersionTableMetaData();
            VersionMigration            = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration      = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration      = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
        public ConnectionlessVersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies, IMigrationConventions conventions, long startVersion, long targetVersion)
        {
            Runner = runner;
            Assemblies = assemblies;
            Conventions = conventions;
            StartVersion = startVersion;
            TargetVersion = targetVersion;

            Processor = Runner.Processor;

            VersionInfo = new VersionInfo();
            VersionTableMetaData = GetVersionTableMetaData();
            VersionMigration = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
Example #38
0
        public ConnectionlessVersionLoader(IMigrationRunner runner, IAssemblyCollection assemblies, IMigrationConventions conventions, long startVersion, long targetVersion)
        {
            Runner        = runner;
            Assemblies    = assemblies;
            Conventions   = conventions;
            StartVersion  = startVersion;
            TargetVersion = targetVersion;

            Processor = Runner.Processor;

            VersionInfo                 = new VersionInfo();
            VersionTableMetaData        = GetVersionTableMetaData();
            VersionMigration            = new VersionMigration(VersionTableMetaData);
            VersionSchemaMigration      = new VersionSchemaMigration(VersionTableMetaData);
            VersionUniqueMigration      = new VersionUniqueMigration(VersionTableMetaData);
            VersionDescriptionMigration = new VersionDescriptionMigration(VersionTableMetaData);

            LoadVersionInfo();
        }
Example #39
0
        private IMigrationProcessor InitializeProcessor(IAssemblyCollection assemblyCollection)
        {

            if (RunnerContext.Timeout == 0)
            {
                RunnerContext.Timeout = 30; // Set default timeout for command
            }

            var connectionString = LoadConnectionString(assemblyCollection);
            var processorFactory = ProcessorFactoryProvider.GetFactory(RunnerContext.Database);

            if (processorFactory == null)
                throw new ProcessorFactoryNotFoundException(string.Format("The provider or dbtype parameter is incorrect. Available choices are {0}: ", ProcessorFactoryProvider.ListAvailableProcessorTypes()));

            var processor = processorFactory.Create(connectionString, RunnerContext.Announcer, new ProcessorOptions
            {
                PreviewOnly = RunnerContext.PreviewOnly,
                Timeout = RunnerContext.Timeout,
                ProviderSwitches = RunnerContext.ProviderSwitches
            });

            return processor;
        }
Example #40
0
 internal SetupGlobals(Engine engine, IPackagesCollection packages, IAssemblyCollection assemblies)
 {
     _engine = engine;
     _packages = packages;
     _assemblies = assemblies;
 }
Example #41
0
 public void Invoke(IPackagesCollection packages, IAssemblyCollection assemblies, IConfigurableFileSystem fileSystem)
 {
     var scriptType = Assembly.GetExportedTypes().First(t => t.Name == "SetupScript");
     MethodInfo runMethod = scriptType.GetMethod("Run", BindingFlags.Public | BindingFlags.Static);
     runMethod.Invoke(null, new object[] { packages, assemblies, fileSystem });
 }
Example #42
0
 public static bool Compare(this IAssemblyCollection source, IAssemblyCollection n)
 {
     return Compare<IAssembly>(source,n);
 }
Example #43
0
 public static bool Compare(this IAssemblyCollection source, IAssemblyCollection n, Func<IAssembly, IAssembly, bool> checkitem)
 {
     return Compare<IAssembly>(source,n,checkitem);
 }
 public DefaultMigrationInformationLoader(IMigrationConventions conventions, IAssemblyCollection assemblies, string @namespace,
                                          IEnumerable<string> tagsToMatch)
     : this(conventions, assemblies, @namespace, false, tagsToMatch)
 {
 }
Example #45
0
        private string LoadConnectionString(IAssemblyCollection assemblyCollection)
        {
            var singleAssembly = (assemblyCollection != null && assemblyCollection.Assemblies != null && assemblyCollection.Assemblies.Length == 1) ? assemblyCollection.Assemblies[0] : null;
            var singleAssemblyLocation = singleAssembly != null ? singleAssembly.Location : string.Empty;

            var manager = new ConnectionStringManager(new NetConfigManager(), RunnerContext.Announcer, RunnerContext.Connection,
                                                      RunnerContext.ConnectionStringConfigPath, singleAssemblyLocation,
                                                      RunnerContext.Database);

            manager.LoadConnectionString();
            return manager.ConnectionString;
        }
Example #46
0
 public static bool Compare(this IAssemblyCollection source, IAssemblyCollection n, Func<IAssembly, IAssembly, Action<string, string>, bool> checkitem, Action<string, string> errAct)
 {
     return Compare<IAssembly>(source,n,checkitem,errAct);
 }