Esempio n. 1
0
        static void Main(string[] args)
        {
            var argList = args.ToList();

            if (argList.Any())
            {
                var first = args.First();
                if (first.HasAny())
                {
                    if (first.ToLower() == "extract-schema")
                    {
                        var model = IsArgumentExtractSchemaValid(argList);
                        if (model.IsValid)
                        {
                            using (var service = new ExtractSchemaService(model))
                                service.ExtractSchema(Model.CompareType.Schema);
                        }
                    }
                    else if (first.ToLower() == "generate-diff")
                    {
                        var model = IsArgumentGenerateDiffFileValid(argList);
                        if (model.IsValid)
                        {
                            using (var service = new CompareSchemaService())
                                service.StartCompare(model);
                        }
                    }
                    else if (first.ToLower() == "generate-script")
                    {
                        var model = IsArgumentGenerateScriptValid(argList);
                        if (model.IsValid)
                        {
                            new GenerateScriptService().GenerateScript(model);
                        }
                    }
                    else if (first.ToLower() == "rename")
                    {
                        var model = IsArgumentTransformationValid(argList);
                        if (model.IsValid)
                        {
                            CompareSchemaService.TransformationDiffFile(model);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        public void ExtractSchema()
        {
            var sourceModel = new ExtractSchema {
                ConnectionString = "Data Source=.\\SQL2016;Initial Catalog=Source;Integrated Security=True;Connect Timeout=30",
                OutputFile       = "Source.xml"
            };

            using (var service = new ExtractSchemaService(sourceModel))
                service.ExtractSchema(Model.CompareType.Schema);


            var targetModel = new ExtractSchema {
                ConnectionString = "Data Source=.\\SQL2016;Initial Catalog=Target;Integrated Security=True;Connect Timeout=30",
                OutputFile       = "Target.xml"
            };

            using (var service = new ExtractSchemaService(targetModel))
                service.ExtractSchema(Model.CompareType.Schema);
        }
Esempio n. 3
0
        private void CompareButton_Click(object sender, RoutedEventArgs e)
        {
            EnableOrDisableButton(false);
            var type = ((Button)sender).Tag.ToString() == "Schema" ? CompareType.Schema : CompareType.Data;

            Task.Factory.StartNew(() => {
                try
                {
                    UpdateState($"Extracting {SourceName} Schema...");
                    using (var service = new ExtractSchemaService(new ExtractSchema {
                        ConnectionString = SourceConnection, OutputFile = "Source.xml"
                    }))
                        service.ExtractSchema(type);
                    UpdateState($"Extracted {SourceName} Schema.");

                    UpdateState($"Extracting {TargetName} Schema...");
                    using (var service = new ExtractSchemaService(new ExtractSchema {
                        ConnectionString = TargetConnection, OutputFile = "Target.xml"
                    }))
                        service.ExtractSchema(type);
                    UpdateState($"Extracted {TargetName} Schema.");

                    UpdateState("Comparing Databases...");
                    using (var service = new CompareSchemaService())
                        service.StartCompare(new GenerateDiffFile {
                            SourceSchemaFile = ConstantData.WorkingDir + "Source.xml",
                            TargetSchemaFile = ConstantData.WorkingDir + "Target.xml",
                            OutputFile       = ConstantData.WorkingDir + "\\diff.xml",
                            CompareType      = type
                        });
                    UpdateState("Databases Compared.");
                    GenerateSqlFileAndShowUpdates();
                } catch (Exception ex)
                {
                    Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() => {
                        EnableOrDisableButton(true);
                        UpdateState("has a error. refer to log path");
                    }));
                    ShowAndLogError(ex);
                }
            });
        }