private void GenerateForColumns(SysDatabase sourceDb, SysDatabase targetDb) { var script = new TableColumnScriptGenerator().GenerateAllObjectsSyncScript(sourceDb.Tables, targetDb.Tables); if (!String.IsNullOrEmpty(script)) { script = String.Format("USE [{0}]{1}{1}{2}", targetDb.Name, Environment.NewLine, script); System.IO.File.WriteAllText(String.Format(@"{0}\{1}_{2}.sql", _directory, "ColumnScript", _dateStamp), script); } }
public void TableSyncScriptGenerator_GenerateSingleObjectSyncScript() { var tableSyncScriptGenerator = new TableColumnScriptGenerator(); var script = tableSyncScriptGenerator.GenerateSingleObjectSyncScript(_sourceTable, _targetTable); Console.WriteLine("-------------- SCRIPT --------------"); Console.WriteLine(script); //Assert.IsTrue(script.Contains("ALTER TABLE [TargetTable]\r\nADD [SecondColumn] varchar(100) NULL;\r\nGO")); Assert.IsTrue(script.Contains("ALTER TABLE [TargetTable]\r\nADD [ThirdColumn] nvarchar(50) NOT NULL;\r\nGO")); }
public override String Process(SysDatabase source, SysDatabase target) { try { var generator = new TableColumnScriptGenerator(); { var script = generator.GenerateAllObjectsSyncScript(source.Tables, target.Tables); if (!String.IsNullOrEmpty(script)) { script = String.Format("USE [{0}]{1}{1}{2}", target.Name, Environment.NewLine, script); GenerateFile(script); } } return Resources.OperationMessages.ColumnSyncSuccess; } catch (Exception ex) { Error = true; return ex.Message; } }
public void TableSyncScriptGenerator_GenerateAllObjectsSyncScript() { // [0]: all 3 columns, [1]: FirstColumn var sourceTables = new List<SysTable>() { _sourceTable, _targetTable }; //[0]: SecondColumn, ThirdColumn; [1]: FirstColumn var targetTables = new List<SysTable>() { new SysTable() { Name = _sourceTable.Name, Columns = _sourceTable.Columns.Skip(1).ToList() }, new SysTable() { Name = _targetTable.Name, Columns = _targetTable.Columns.Take(1).ToList() }, }; // expected: // SourceTable - ADD FistColumn // TargetTable - ADD SecondColumn var tableSyncScriptGenerator = new TableColumnScriptGenerator(); var script = tableSyncScriptGenerator.GenerateAllObjectsSyncScript(sourceTables, targetTables); Console.WriteLine("-------------- SCRIPT --------------"); Console.WriteLine(script); Assert.IsTrue(script.Contains("ALTER TABLE [SourceTable]\r\nADD [FirstColumn] int IDENTITY NOT NULL;\r\nGO")); Assert.IsTrue(script.Contains("ALTER TABLE [TargetTable]\r\nADD [SecondColumn] varchar(100) NULL;\r\nGO")); }