[chronojump/chronojump-importer] Updates the "type" of the jump in the tables Jump and JumpRj according to the new Jump(Rj)Type(name)
- From: Carles Pina i Estany <carlespina src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump/chronojump-importer] Updates the "type" of the jump in the tables Jump and JumpRj according to the new Jump(Rj)Type(name)
- Date: Wed, 7 Sep 2016 11:44:04 +0000 (UTC)
commit b566c050dc1f8e64383fb4ec52a8168bc8b666ff
Author: Carles Pina i Estany <carles pina cat>
Date: Wed Sep 7 12:42:58 2016 +0100
Updates the "type" of the jump in the tables Jump and JumpRj according
to the new Jump(Rj)Type(name)
src/chronojump-importer/chronojump_importer.py | 26 +++++++++++++++++--
.../tests/generic-expected-c.sqlite | Bin 61440 -> 61440 bytes
2 files changed, 23 insertions(+), 3 deletions(-)
---
diff --git a/src/chronojump-importer/chronojump_importer.py b/src/chronojump-importer/chronojump_importer.py
index 043af65..eeb504e 100755
--- a/src/chronojump-importer/chronojump_importer.py
+++ b/src/chronojump-importer/chronojump_importer.py
@@ -170,8 +170,10 @@ def insert_dictionary_into_table(cursor, table_name, row, skip_columns=["uniqueI
values = []
column_names = []
place_holders = []
+ table_column_names = get_column_names(cursor, table_name)
+
for column_name in row.keys():
- if column_name in skip_columns:
+ if column_name in skip_columns or column_name not in table_column_names:
continue
values.append(row[column_name])
@@ -267,6 +269,8 @@ def avoids_column_duplicate(cursor, table_name, column_name, data_row):
if column_name is None:
return
+ data_row['old_' + column_name] = data_row[column_name]
+
while True:
sql = "SELECT count(*) FROM {table_name} WHERE {column}=?".format(table_name=table_name,
column=column_name)
binding_values = []
@@ -279,6 +283,19 @@ def avoids_column_duplicate(cursor, table_name, column_name, data_row):
break
else:
data_row[column_name] = increment_suffix(data_row[column_name])
+ data_row['new_' + column_name] = data_row[column_name]
+
+
+def update_jump_types(table, jump_types):
+ """ TODO: refactor with update_persons77_ids"""
+ result = copy.deepcopy(table)
+
+ for row in result:
+ for jump_type in jump_types:
+ if row['type'] == jump_type.get('old_name'):
+ row['type'] = jump_type['new_name']
+
+ return result
def import_database(source_path, destination_path, source_session):
@@ -319,7 +336,7 @@ def import_database(source_path, destination_path, source_session):
join_clause="LEFT JOIN Jump ON JumpType.name=Jump.type LEFT JOIN
Session ON Jump.sessionID=Session.uniqueID",
group_by_clause="JumpType.uniqueID")
- insert_data_into_table(cursor=destination_cursor, table_name="JumpType", data=jump_types,
+ jump_types = insert_data_into_table(cursor=destination_cursor, table_name="JumpType", data=jump_types,
matches_columns=get_column_names(destination_cursor, "JumpType", ["uniqueID"]),
avoids_duplicate_column="name")
@@ -329,7 +346,7 @@ def import_database(source_path, destination_path, source_session):
join_clause="LEFT JOIN JumpRj ON JumpRjType.name=JumpRj.type LEFT
JOIN Session on JumpRj.sessionID=Session.uniqueID",
group_by_clause="JumpRjType.uniqueID")
- insert_data_into_table(cursor=destination_cursor, table_name="JumpRjType", data=jump_rj_types,
+ jump_rj_types = insert_data_into_table(cursor=destination_cursor, table_name="JumpRjType",
data=jump_rj_types,
matches_columns=get_column_names(destination_cursor, "JumpRjType", ["uniqueID"]),
avoids_duplicate_column="name")
@@ -356,6 +373,8 @@ def import_database(source_path, destination_path, source_session):
jump_rj = update_persons77_ids(jump_rj, persons77)
jump_rj = update_session_ids(jump_rj, new_session_id)
+ jump_rj = update_jump_types(jump_rj, jump_rj_types)
+
insert_data_into_table(cursor=destination_cursor, table_name="JumpRj", data=jump_rj,
matches_columns=None)
@@ -365,6 +384,7 @@ def import_database(source_path, destination_path, source_session):
jump = update_persons77_ids(jump, persons77)
jump = update_session_ids(jump, new_session_id)
+ jump = update_jump_types(jump, jump_types)
insert_data_into_table(cursor=destination_cursor, table_name="Jump", data=jump, matches_columns=None)
diff --git a/src/chronojump-importer/tests/generic-expected-c.sqlite
b/src/chronojump-importer/tests/generic-expected-c.sqlite
index 8db43b3..0708c99 100644
Binary files a/src/chronojump-importer/tests/generic-expected-c.sqlite and
b/src/chronojump-importer/tests/generic-expected-c.sqlite differ
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]