public MigrationResult SafeResolution() { var priorVersion = tracker.Version; var lastValidMigrationVersion = tracker.LastValidMigration == null ? "" : tracker.LastValidMigration.Version; MigrateTo(lastValidMigrationVersion); tracker = databaseRepository.Create(); Update(); tracker = databaseRepository.Create(); return(new MigrationResult(priorVersion, tracker.Version)); }
public MigrationResult DirtyResolution() { //run all non-executed transactions var version = tracker.Version; foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } tracker = databaseRepository.Create(); return new MigrationResult( version, tracker.Version); }
public MigrationResult DirtyResolution() { //run all non-executed transactions var version = tracker.Version; foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } tracker = databaseRepository.Create(); return(new MigrationResult(version, tracker.Version)); }
public void FromScratch() { //drop the database and execute all the ups if (databaseRepository.DatabaseExists()) { databaseRepository.DropDatabase(); } databaseRepository.CreateDatabaseIfNotExists(); tracker =databaseRepository.Init(); foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } }
public void FromScratch() { //drop the database and execute all the ups if (databaseRepository.DatabaseExists()) { databaseRepository.DropDatabase(); } databaseRepository.CreateDatabaseIfNotExists(); tracker = databaseRepository.Init(); foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } }
public MigrationResult Update() { if (!tracker.IsValidState()) { throw new Exception("Database must be in a valid state in order to update it."); } if (!databaseRepository.DatabaseExists()) { databaseRepository.Init(); } var version = tracker.Version; foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } tracker = databaseRepository.Create(); return(new MigrationResult("", version, tracker.Version)); }
/// <summary> /// Only for test /// </summary> /// <param name="db"></param> /// <param name="dbLock"></param> /// <param name="upgrades"></param> /// <param name="initializer"></param> /// <param name="settings"></param> /// <param name="tracker"></param> /// <param name="logFactory"></param> public MongoMigrator( IMongoDatabase db, IMigrationChain upgrades, IUpgrade initializer, IUpgradeSettings settings, IDbLock dbLock, IMigrationTracker tracker, ILoggerFactory logFactory) { _log = logFactory.CreateLogger <MongoMigrator>(); _logFactory = logFactory; _db = db; _upgrades = upgrades; _initializer = initializer; _settings = settings; _dbLock = dbLock; _tracker = tracker; _isTransactionsAvailable = _db.Client.Cluster.Description.Type > ClusterType.Standalone; }
public MigrationResult MigrateTo(string destinationVersion) { string originalVersion = tracker.Version; bool isUp = tracker.Version.CompareTo(destinationVersion) < 0; if (isUp && !tracker.IsValidState()) { throw new Exception( "Database must be in a valid state in order to use migrate in the up direction. Try mite update instead."); } if (!databaseRepository.MigrationTableExists()) { databaseRepository.Init(); } if (isUp) { var migrationsToExecute = tracker.UnexcutedMigrations.Where(x => x.Version.CompareTo(destinationVersion) <= 0); foreach (var mig in migrationsToExecute) { databaseRepository.ExecuteUp(mig); } } else { var migrationsToExecute = tracker.ExecutedMigrations.Where(x => x.Version.CompareTo(destinationVersion) > 0); foreach (var mig in migrationsToExecute) { databaseRepository.ExecuteDown(mig); } } tracker = databaseRepository.Create(); return(new MigrationResult("", originalVersion, tracker.Version)); }
public MigrationResult MigrateTo(string destinationVersion) { string originalVersion = tracker.Version; bool isUp = tracker.Version.CompareTo(destinationVersion) < 0; if (isUp && !tracker.IsValidState()) throw new Exception( "Database must be in a valid state in order to use migrate in the up direction. Try mite update instead."); if (!databaseRepository.MigrationTableExists()) databaseRepository.Init(); if (isUp) { var migrationsToExecute = tracker.UnexcutedMigrations.Where(x => x.Version.CompareTo(destinationVersion) <= 0); foreach (var mig in migrationsToExecute) { databaseRepository.ExecuteUp(mig); } } else { var migrationsToExecute = tracker.ExecutedMigrations.Where(x => x.Version.CompareTo(destinationVersion) > 0); foreach (var mig in migrationsToExecute) { databaseRepository.ExecuteDown(mig); } } tracker = databaseRepository.Create(); return new MigrationResult( "", originalVersion, tracker.Version); }
public Migrator(IMigrationTracker tracker, IDatabaseRepository databaseRepository) { this.tracker = tracker; this.databaseRepository = databaseRepository; }
public MigrationResult Update() { if (!tracker.IsValidState()) throw new Exception("Database must be in a valid state in order to update it."); if (!databaseRepository.DatabaseExists()) databaseRepository.Init(); var version = tracker.Version; foreach (var mig in tracker.UnexcutedMigrations) { databaseRepository.ExecuteUp(mig); } tracker = databaseRepository.Create(); return new MigrationResult( "", version, tracker.Version); }
public MigrationResult SafeResolution() { var priorVersion = tracker.Version; var lastValidMigrationVersion = tracker.LastValidMigration == null ? "" : tracker.LastValidMigration.Version; MigrateTo(lastValidMigrationVersion); tracker = databaseRepository.Create(); Update(); tracker = databaseRepository.Create(); return new MigrationResult(priorVersion, tracker.Version ); }
public Migrator(IMigrationTracker tracker, IDatabaseRepository databaseRepository) { this.tracker = tracker; this.databaseRepository = databaseRepository; }