Skip to content
Snippets Groups Projects
Commit 65de903b authored by Benedikt Heinrichs's avatar Benedikt Heinrichs
Browse files

Fix: Deploy only changed graphs

parent e743de50
Branches
No related tags found
1 merge request!9Fix: Deploy only changed graphs
...@@ -90,14 +90,39 @@ public class Program ...@@ -90,14 +90,39 @@ public class Program
// Graph Insertion // Graph Insertion
var queries = new List<string>(); var queries = new List<string>();
var turtleFiles = Directory.GetFiles(WorkingFolder, "*.ttl", SearchOption.AllDirectories); var turtleFiles = Directory.GetFiles(WorkingFolder, "*.ttl", SearchOption.AllDirectories);
foreach (var file in turtleFiles)
var graphAccumulation = new Dictionary<Uri, (Graph, List<string>)>();
Array.ForEach(turtleFiles, (file) =>
{ {
var fileInfo = new FileInfo(file);
var graph = new Graph(); var graph = new Graph();
graph.LoadFromFile(file); graph.LoadFromFile(file);
var graphName = graph.BaseUri.ToString(); if (graphAccumulation.ContainsKey(graph.BaseUri))
{
graphAccumulation[graph.BaseUri].Item1.Merge(graph);
graphAccumulation[graph.BaseUri].Item2.Add(file);
}
else
{
graphAccumulation.Add(graph.BaseUri, (graph, new List<string>() { file }));
}
});
if (_rdfStoreConnector.HasGraph(graphName)) foreach (var kv in graphAccumulation)
{
var graph = kv.Value.Item1;
var graphName = kv.Key.ToString();
var currentGraph = _rdfStoreConnector.GetGraph(graphName);
var graphWasChanged = graph.Triples.Count != currentGraph.Triples.Count
|| graph.Triples.Any((triple) => !currentGraph.Triples.Any((currentTriple) =>
(triple.Subject.Equals(currentTriple.Subject) || (triple.Subject.NodeType == NodeType.Blank && currentTriple.Subject.NodeType == NodeType.Blank)
&& triple.Predicate.Equals(currentTriple.Predicate)
&& triple.Object.Equals(currentTriple.Object) || (triple.Object.NodeType == NodeType.Blank && currentTriple.Object.NodeType == NodeType.Blank))));
if (graphWasChanged)
{
if (!currentGraph.IsEmpty)
{ {
_rdfStoreConnector.ClearGraph(graphName); _rdfStoreConnector.ClearGraph(graphName);
_logger.LogInformation("Cleared Graph {graphName}", graphName); _logger.LogInformation("Cleared Graph {graphName}", graphName);
...@@ -107,8 +132,18 @@ public class Program ...@@ -107,8 +132,18 @@ public class Program
_logger.LogInformation("No Graph {graphName}", graphName); _logger.LogInformation("No Graph {graphName}", graphName);
} }
foreach (var file in kv.Value.Item2)
{
var fileInfo = new FileInfo(file);
queries.Add($"ld_dir('{fileInfo.DirectoryName[2..].Replace("\\", "/")}', '{fileInfo.Name}', '{graphName}');"); queries.Add($"ld_dir('{fileInfo.DirectoryName[2..].Replace("\\", "/")}', '{fileInfo.Name}', '{graphName}');");
} }
}
else
{
_logger.LogInformation("Skipping {graphName}", graphName);
}
}
queries.Add($"rdf_loader_run ();"); queries.Add($"rdf_loader_run ();");
queries.Add($"DELETE from DB.DBA.load_list where 1=1;"); queries.Add($"DELETE from DB.DBA.load_list where 1=1;");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment