Exemple #1
0
        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());
        }
Exemple #3
0
 /// <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);
     }
 }
Exemple #4
0
 private static void Resolve(Migrator migrator)
 {
     var result = migrator.SafeResolution();
     Console.WriteLine("Resolution Successful");
     Console.WriteLine("Current Database Version: " + result.AfterMigration);
 }