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); } } } } }
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); }
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); } }); }