void ExecuteMigrations(IEnumerable <IMigration> migrations) { var store = GetStore(); var lastApplied = store.Items <ExecutedMigration>() .OrderByDescending(migration => migration.Number) .Take(1) .ToList() .Select(migration => migration.Number) .FirstOrDefault(); log.Debug("Last migration executed according to database was " + lastApplied); migrations.Where(migration => migration.Number() > lastApplied) .ToList().ForEach(migration => { log.Debug("Executing migration " + migration.Number()); migration.Execute(); var executed = new ExecutedMigration(migration); store.Save(executed); }); }
void ExecuteMigrations(IEnumerable<IMigration> migrations) { var store = GetStore(); var lastApplied = store.Items<ExecutedMigration>() .OrderByDescending(migration => migration.Number) .Take(1) .ToList() .Select(migration => migration.Number) .FirstOrDefault(); log.Debug("Last migration executed according to database was " + lastApplied); migrations.Where(migration => migration.Number() > lastApplied) .ToList().ForEach(migration => { log.Debug("Executing migration " + migration.Number()); migration.Execute(); var executed = new ExecutedMigration(migration); store.Save(executed); }); }