private void btnOpen_Click(object sender, RoutedEventArgs e) { //var dialog = new System.Windows.Forms.FolderBrowserDialog(); //System.Windows.Forms.DialogResult result = dialog.ShowDialog(); ////store the path to local storage //pathToMigrations = dialog.SelectedPath; pathToMigrations = @"d:\working\connect\scripts"; migrator = MigratorFactory.GetMigrator(pathToMigrations); btnUp.DataContext = migrator.Tracker; btnDown.DataContext = migrator.Tracker; migrations = migrator.Tracker.Migrations; var version = migrator.Tracker.Version; stackPanel1.Children.Clear(); foreach (var mig in migrations) { var rbl = new RadioButton(); rbl.GroupName = "RBLMigration"; rbl.Content = mig.Version; if (version == mig.Version) rbl.IsChecked = true; rbl.Checked += new RoutedEventHandler(rbl_Checked); stackPanel1.Children.Add(rbl); } lblVersion.Content = version; }
public void MigrateToShouldExecuteDownTwice() { var migrations = new List<Migration> { new Migration("2006", "asdf", ""), new Migration("2006-01", "98sd98", ""), new Migration("2007", "fdsa", "") }; var hash = new Dictionary<string, string>(); foreach (var mig in migrations) hash.Add(mig.Version, mig.Hash); var db = new MigrationTracker(migrations, hash); var repoMoq = new Moq.Mock<IDatabaseRepository>(); int y = 0; repoMoq.Setup(x => x.ExecuteDown(It.IsAny<Migration>())).Callback((Migration input) => { y++; }); repoMoq.Setup(x => x.Create()).Returns(db); var migrator = new Migrator(db, repoMoq.Object); migrator.MigrateTo("2006"); Assert.IsTrue(y== 2, "ExecuteDown should be called two times but is called " + y.ToString()); }
/// <summary> /// In a temporary database migrate all the way up then back down /// </summary> /// <returns></returns> public bool Verify() { var storeDbName = databaseRepository.Connection.Database; //drop and recreate MiteVerify databaseRepository.Connection.Open(); databaseRepository.Connection.ChangeDatabase(verifyDatabaseName); databaseRepository.Connection.Close(); databaseRepository.DropDatabase(); databaseRepository.CreateDatabaseIfNotExists(); var verifier = new Migrator(this.tracker, databaseRepository); try { var cnt = verifier.Tracker.Migrations.Count(); for (var i = 0; i < cnt; i++) verifier.StepUp(); for (var i = 0; i < cnt; i++) verifier.StepDown(); return true; }finally { databaseRepository.Connection.ChangeDatabase(storeDbName); } }
private static void Resolve(Migrator migrator) { var result = migrator.SafeResolution(); Console.WriteLine("Resolution Successful"); Console.WriteLine("Current Database Version: " + result.AfterMigration); }