public AutomaticMigration(IAccessDb db, IManageMigrations migrations, ILogWriter logger) { _db = db; _migrations = migrations; _runner=new MigrationTaskRunner(db,logger); UpdateSelf(); }
public MigrationsManager(IEnumerable <IMigrateSchema> schemas, IRunMigrations runner) { schemas.MustNotBeNull(); schemas.ForEach(s => s.Runner = runner); _schemas = Sort(schemas); _runner = runner; }
public SchemaMigrationExecutor(IRunMigrations runner,IEnumerable<IMigrationTask> tasks,string schemaName) { runner.MustNotBeNull(); tasks.MustNotBeNull(); schemaName.MustNotBeEmpty(); if (tasks.Any(t => t.SchemaName != schemaName)) throw new ArgumentException("Some of the provided tasks don't belong to the specified schema"); _runner = runner; _tasks = tasks; SchemaName = schemaName; var late = _tasks.FirstOrDefault(t =>t.CurrentVersion!=null && t.NextVersion == null); if (late!=null) { _latest = late.CurrentVersion.ToString(); Priority = late.Priority; } var lateUpgrade = _tasks.Where(d => d.NextVersion != null).Max(d => d.NextVersion); if (lateUpgrade!=null) { _latest = lateUpgrade.CompareTo(late.CurrentVersion) > 0 ? lateUpgrade.ToString() : late.CurrentVersion.ToString(); } }
public AutomaticMigration(DbConnection db, IManageMigrations migrations, ILogWriter logger) { _db = db; _migrations = migrations; _runner = new MigrationTaskRunner(db, logger); UpdateSelf(); }
public SchemaMigrationExecutor(IRunMigrations <TDatabase> runner, IEnumerable <IMigrationTask <TDatabase> > tasks, string schemaName) { runner.MustNotBeNull(); tasks.MustNotBeNull(); schemaName.MustNotBeEmpty(); if (tasks.Any(t => t.SchemaName != schemaName)) { throw new ArgumentException("Some of the provided tasks don't belong to the specified schema"); } _runner = runner; _tasks = tasks; SchemaName = schemaName; var late = _tasks.FirstOrDefault(t => t.CurrentVersion != null && t.NextVersion == null); if (late != null) { _latest = late.CurrentVersion.ToString(); Priority = late.Priority; } var lateUpgrade = _tasks.Where(d => d.NextVersion != null).Max(d => d.NextVersion); if (lateUpgrade != null) { _latest = lateUpgrade.CompareTo(late.CurrentVersion) > 0 ? lateUpgrade.ToString() : late.CurrentVersion.ToString(); } }
public MigrationsManager(IEnumerable<IMigrateSchema> schemas, IRunMigrations runner) { schemas.MustNotBeNull(); schemas.ForEach(s => s.Runner = runner); _schemas = Sort(schemas); _runner = runner; }
// internal const string TableName = "MigrationTracker"; // internal const string SchemaName = "AutomaticMigration"; public AutomaticMigration(TDatabase db, IAutomaticMigrationRepository <TDatabase> repository, IUnitOfWorkCreator <TDatabase> unitOfWorkCreator, IManageMigrations <TDatabase> migrations, TextWriter logger) { _db = db; _repository = repository; _migrations = migrations; _unitOfWorkCreator = unitOfWorkCreator; _log = logger; _runner = new MigrationTaskRunner <TDatabase>(db, logger); UpdateSelf(); }
private IEnumerable <IMigrateSchema> GetSchemaExecutors(IEnumerable <IMigrationTask> tasks, IRunMigrations runner) { var groups = tasks.GroupBy(t => t.SchemaName); foreach (var group in groups) { yield return(new SchemaMigrationExecutor(runner, group, group.Key)); } }