diff --git a/KustoSchemaTools/KustoSchemaHandler.cs b/KustoSchemaTools/KustoSchemaHandler.cs index bb98b6b..fcd17fc 100644 --- a/KustoSchemaTools/KustoSchemaHandler.cs +++ b/KustoSchemaTools/KustoSchemaHandler.cs @@ -36,17 +36,20 @@ public KustoSchemaHandler(ILogger> schemaHandlerLogger, Ya var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName); var yamlDb = await yamlHandler.LoadAsync(); + var escapedDbName = databaseName.BracketIfIdentifier(); + + foreach (var cluster in clusters.Connections) { - Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}"); + Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}"); - var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName); + var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName); var kustoDb = await dbHandler.LoadAsync(); - var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, databaseName, Log); + var changes = DatabaseChanges.GenerateChanges(kustoDb, yamlDb, escapedDbName, Log); isValid &= changes.All(itm => itm.Scripts.All(itm => itm.IsValid != false)); - sb.AppendLine($"# {cluster.Name}/{databaseName} ({cluster.Url})"); + sb.AppendLine($"# {cluster.Name}/{escapedDbName} ({cluster.Url})"); if(changes.Count == 0) { @@ -72,7 +75,7 @@ public KustoSchemaHandler(ILogger> schemaHandlerLogger, Ya foreach(var follower in yamlDb.Followers) { - Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {follower.Key}/{databaseName}"); + Log.LogInformation($"Generating diff markdown for {Path.Combine(path, databaseName)} => {follower.Key}/{follower.Value.DatabaseName}"); var followerClient = new KustoClient(follower.Key); @@ -82,7 +85,7 @@ public KustoSchemaHandler(ILogger> schemaHandlerLogger, Ya var changes = DatabaseChanges.GenerateFollowerChanges(oldModel, newModel, Log); - sb.AppendLine($"# Changes for follower database {follower.Key}/{databaseName}"); + sb.AppendLine($"# Changes for follower database {follower.Key}/{follower.Value.DatabaseName}"); sb.AppendLine(); foreach (var change in changes) { @@ -98,7 +101,8 @@ public async Task Import(string path, string databaseName, bool includeColumns) var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml")); var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize(clustersFile); - var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, databaseName); + var escapedDbName = databaseName.BracketIfIdentifier(); + var dbHandler = KustoDatabaseHandlerFactory.Create(clusters.Connections[0].Url, escapedDbName); var db = await dbHandler.LoadAsync(); if (includeColumns == false) @@ -119,6 +123,7 @@ public async Task> Apply(string path, str var clustersFile = File.ReadAllText(Path.Combine(path, "clusters.yml")); var clusters = Serialization.YamlPascalCaseDeserializer.Deserialize(clustersFile); + var escapedDbName = databaseName.BracketIfIdentifier(); var yamlHandler = YamlDatabaseHandlerFactory.Create(path, databaseName); var yamlDb = await yamlHandler.LoadAsync(); @@ -128,8 +133,8 @@ await Parallel.ForEachAsync(clusters.Connections, async (cluster, token) => { try { - Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{databaseName}"); - var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, databaseName); + Log.LogInformation($"Generating and applying script for {Path.Combine(path, databaseName)} => {cluster}/{escapedDbName}"); + var dbHandler = KustoDatabaseHandlerFactory.Create(cluster.Url, escapedDbName); await dbHandler.WriteAsync(yamlDb); results.TryAdd(cluster.Url, null); } diff --git a/KustoSchemaTools/Model/Function.cs b/KustoSchemaTools/Model/Function.cs index f1819e9..6b617e5 100644 --- a/KustoSchemaTools/Model/Function.cs +++ b/KustoSchemaTools/Model/Function.cs @@ -22,7 +22,7 @@ public List CreateScripts(string name, bool isNew) { var properties = GetType().GetProperties() .Where(p => p.GetValue(this) != null && p.Name != "Body" && p.Name != "Parameters") - .Select(p => $"{p.Name}=\"{p.GetValue(this)}\""); + .Select(p => $"{p.Name}=```{p.GetValue(this)}```"); var propertiesString = string.Join(", ", properties); var parameters = Parameters; diff --git a/KustoSchemaTools/Model/MaterializedView.cs b/KustoSchemaTools/Model/MaterializedView.cs index ae5177b..0069775 100644 --- a/KustoSchemaTools/Model/MaterializedView.cs +++ b/KustoSchemaTools/Model/MaterializedView.cs @@ -42,7 +42,7 @@ public List CreateScripts(string name, bool isNew) .Where(p => p.GetValue(this) != null && excludedProperies.Contains(p.Name) == false) .Select(p => new {Name = p.Name, Value = p.GetValue(this) }) .Where(p => !string.IsNullOrWhiteSpace(p.Value?.ToString())) - .Select(p => $"{p.Name}=\"{p.Value}\"")); + .Select(p => $"{p.Name}=```{p.Value}```")); if (asyncSetup) diff --git a/KustoSchemaTools/Model/Table.cs b/KustoSchemaTools/Model/Table.cs index fbd6cf2..4740a3e 100644 --- a/KustoSchemaTools/Model/Table.cs +++ b/KustoSchemaTools/Model/Table.cs @@ -30,7 +30,7 @@ public List CreateScripts(string name, bool isNew) { var properties = string.Join(", ", GetType().GetProperties() .Where(p => p.GetValue(this) != null && (p.Name == "Folder" || p.Name == "DocString")) - .Select(p => $"{p.Name}=\"{p.GetValue(this)}\"")); + .Select(p => $"{p.Name}=```{p.GetValue(this)}```")); scripts.Add(new DatabaseScriptContainer("CreateMergeTable", 30, $".create-merge table {name} ({string.Join(", ", Columns.Select(c => $"{c.Key.BracketIfIdentifier()}:{c.Value}"))})")); }