Пример #1
0
        public bool Execute(IDbConnectionProvider conn, MigrationResources resources)
        {
            _logger.Info("Initialize database versioner");
            var versioner = new Versioner(conn, new Logger <Version>());

            _logger.Info("Initialize executor");
            var executor = new Executor(conn, versioner, new Logger <Executor>());

            _logger.Info("Execute migrations");
            return(executor.Execute(resources));
        }
Пример #2
0
        public MigrationResources Find()
        {
            var resources = new MigrationResources();

            var ensureLoaded = Type.GetType("Skimur.Tasks.Migrations.Empty, Skimur.Tasks");

            if (ensureLoaded == null)
            {
                throw new Exception("Couldn't find the Migrations.dll");
            }

            foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
            {
                foreach (var type in assembly.GetTypes())
                {
                    if (typeof(Migration).IsAssignableFrom(type) && !type.IsAbstract)
                    {
                        resources.Add(Activator.CreateInstance(type) as Migration);
                    }
                }
            }

            return(resources);
        }
Пример #3
0
 public bool Execute(MigrationResources resources)
 {
     _logger.Info("Start executing migrations");
     return(resources.Migrations.OrderBy(x => x.Version).All(Execute));
 }