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)); }
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); }
public bool Execute(MigrationResources resources) { _logger.Info("Start executing migrations"); return(resources.Migrations.OrderBy(x => x.Version).All(Execute)); }