Example #1
0
        private static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .AddCommandLine(args);
            var arguments = builder.Build().Get <MoveArgs>();

            var from = new AgDatabase(arguments.From);
            var to   = new AgDatabase(arguments.To);

            // TODO: This should be baked into the restore class. We have a property for it.
            if (arguments.Overwrite)
            {
                to.Delete();
            }

            Console.WriteLine("Beginning restore...");
            var restore = new Restore(from, to)
            {
                CopyLogins    = arguments.CopyLogins,
                FileRelocator = fileName => RestoreFileRelocator(from.Name, to.Name, fileName), Finalize = arguments.Finalize,
                Overwrite     = arguments.Overwrite
            };

            from.LogBackup();
            restore.AgDbRestore();
            Console.WriteLine("Restore completed.");

            Console.WriteLine("Deleting source.");
            from.Delete();
            Console.WriteLine("Source deleted");
        }
Example #2
0
        public TestRestoreFixture()
        {
            var builder = new ConfigurationBuilder().AddJsonFile("config.json", false);

            _config = builder.Build().GetSection("TestRestore").Get <TestRestoreConfig>();

            _source = new AgDatabase(_config.From);
            _test   = new AgDatabase(_config.To);
            _test.Delete();

            // We only snapshot the primary instance's logins. It works for our integration environment, but we could do better and snapshot each instance's.
            _preTestLogins = _test._listener.Primary.Logins.Select(l => l.Properties()).ToList();
        }