public static string DatabaseSchemaDifference(CompareSideType sideType, DatabaseName dname1, DatabaseName dname2) { TableName[] names = dname1.GetDependencyTableNames(); StringBuilder builder = new StringBuilder(); foreach (TableName tableName in names) { #if DEBUG Console.WriteLine(tableName.ShortName); #endif try { string sql = TableSchemaDifference(sideType, tableName, new TableName(dname2, tableName.SchemaName, tableName.Name)); builder.Append(sql); #if DEBUG if (sql != string.Empty) Console.WriteLine(sql); #endif } catch (Exception ex) { Console.WriteLine("error:" + ex.Message); } } return builder.ToString(); }
public static string DatabaseSchemaDifference(CompareSideType sideType, DatabaseName dname1, DatabaseName dname2) { TableName[] names = dname1.GetDependencyTableNames(); StringBuilder builder = new StringBuilder(); foreach (TableName tableName in names) { #if DEBUG cout.WriteLine(tableName.ShortName); #endif try { string sql = TableSchemaDifference(sideType, tableName, new TableName(dname2, tableName.SchemaName, tableName.Name)); builder.Append(sql); #if DEBUG if (sql != string.Empty) { cout.WriteLine(sql); } #endif } catch (Exception ex) { cerr.WriteLine("error:" + ex.Message); } } return(builder.ToString()); }
public static string DatabaseDifference(CompareSideType sideType, DatabaseName dname1, DatabaseName dname2, string[] excludedTables) { TableName[] names = dname1.GetDependencyTableNames(); excludedTables = excludedTables.Select(row => row.ToUpper()).ToArray(); StringBuilder builder = new StringBuilder(); foreach (TableName tableName in names) { TableName tname1 = tableName; TableName tname2 = new TableName(dname2, tableName.SchemaName, tableName.Name); TableSchema schema1 = new TableSchema(tname1); TableSchema schema2 = new TableSchema(tname2); cout.WriteLine(tname1.ShortName); if (excludedTables.Contains(tableName.ShortName.ToUpper())) { cout.WriteLine("skip to compare data on excluded table {0}", tableName.ShortName); continue; } if (schema1.PrimaryKeys.Length == 0) { cout.WriteLine("undefined primary key"); continue; } if (tname2.Exists()) { builder.Append(TableDifference(sideType, schema1, schema2, schema1.PrimaryKeys.Keys, new string[] { })); } else { builder.Append(Compare.GenerateRows(schema1, new TableReader(tname1))); } builder.AppendLine(); } return(builder.ToString()); }
public static string DatabaseDifference(CompareSideType sideType, DatabaseName dname1, DatabaseName dname2, string[] excludedTables) { TableName[] names = dname1.GetDependencyTableNames(); excludedTables = excludedTables.Select(row => row.ToUpper()).ToArray(); StringBuilder builder = new StringBuilder(); foreach (TableName tableName in names) { TableName tname1 = tableName; TableName tname2 = new TableName(dname2, tableName.SchemaName, tableName.Name); TableSchema schema1 = new TableSchema(tname1); TableSchema schema2 = new TableSchema(tname2); Console.WriteLine(tname1.ShortName); if (excludedTables.Contains(tableName.ShortName.ToUpper())) { Console.WriteLine("skip to compare data on excluded table {0}", tableName.ShortName); continue; } if (schema1.PrimaryKeys.Length == 0) { Console.WriteLine("undefined primary key"); continue; } if (tname2.Exists()) { builder.Append(TableDifference(sideType, schema1, schema2, schema1.PrimaryKeys.Keys, new string[] { })); } else { builder.Append(Compare.GenerateRows(schema1, new TableReader(tname1))); } builder.AppendLine(); } return builder.ToString(); }