From 5893bbc199af27deacf181dc9dc239b6f8b26ae5 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Mon, 7 Nov 2016 23:14:36 +0100 Subject: [PATCH] Fix map command overwrite --- src/Db/Db.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/Db/Db.py b/src/Db/Db.py index 8d18981e..8e8a6ee2 100644 --- a/src/Db/Db.py +++ b/src/Db/Db.py @@ -256,13 +256,13 @@ class Db(object): commit_after_done = False # Row for current json file if required - if filter(lambda map: "to_keyvalue" in map or "to_table" in map, matched_maps): + if filter(lambda dbmap: "to_keyvalue" in dbmap or "to_table" in dbmap, matched_maps): json_row = cur.getJsonRow(relative_path) # Check matched mappings in schema - for map in matched_maps: + for dbmap in matched_maps: # Insert non-relational key values - if map.get("to_keyvalue"): + if dbmap.get("to_keyvalue"): # Get current values res = cur.execute("SELECT * FROM keyvalue WHERE json_id = ?", (json_row["json_id"],)) current_keyvalue = {} @@ -271,7 +271,7 @@ class Db(object): current_keyvalue[row["key"]] = row["value"] current_keyvalue_id[row["key"]] = row["keyvalue_id"] - for key in map["to_keyvalue"]: + for key in dbmap["to_keyvalue"]: if key not in current_keyvalue: # Keyvalue not exist yet in the db cur.execute( "INSERT INTO keyvalue ?", @@ -284,20 +284,20 @@ class Db(object): ) # Insert data to json table for easier joins - if map.get("to_json_table"): + if dbmap.get("to_json_table"): directory, file_name = re.match("^(.*?)/*([^/]*)$", relative_path).groups() - data_json_row = dict(cur.getJsonRow(directory + "/" + map.get("file_name", file_name))) + data_json_row = dict(cur.getJsonRow(directory + "/" + dbmap.get("file_name", file_name))) changed = False - for key in map["to_json_table"]: + for key in dbmap["to_json_table"]: if data.get(key) != data_json_row.get(key): changed = True if changed: # Add the custom col values - data_json_row.update({key: val for key, val in data.iteritems() if key in map["to_json_table"]}) + data_json_row.update({key: val for key, val in data.iteritems() if key in dbmap["to_json_table"]}) cur.execute("INSERT OR REPLACE INTO json ?", data_json_row) # Insert data to tables - for table_settings in map.get("to_table", []): + for table_settings in dbmap.get("to_table", []): if isinstance(table_settings, dict): # Custom settings table_name = table_settings["table"] # Table name to insert datas node = table_settings.get("node", table_name) # Node keyname in data json file