From de3a9fb084a8267afa1aeaacb7b1935912d6d003 Mon Sep 17 00:00:00 2001 From: idelcano Date: Fri, 5 Feb 2021 10:50:58 +0100 Subject: [PATCH 1/2] Added script to find duplicates in db --- .../duplicate_uids_in_db.py | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py diff --git a/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py b/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py new file mode 100644 index 00000000..09d442d8 --- /dev/null +++ b/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py @@ -0,0 +1,39 @@ +import psycopg2 + +con = psycopg2.connect(database="", user="", password="", host="127.0.0.1", port="5434") +print("Database opened successfully") + +cur = con.cursor() + +cur.execute("select t.table_schema, t.table_name from information_schema.tables t inner join information_schema.columns c on c.table_name = t.table_name and c.table_schema = t.table_schema where c.column_name = 'uid' and t.table_schema not in ('information_schema', 'pg_catalog') and t.table_type = 'BASE TABLE' order by t.table_schema;"); + +rows = cur.fetchall() +tables = [] + + +for row in rows: + tables.append(row[1]) +for table in tables: + if table in ["audit", "deletedobject", "visualization"]: + continue + print(table) + cur.execute("select uid from "+table+";"); + rows = cur.fetchall() + active_uid = [] + for row in rows: + active_uid.append(row[0]) + for tableB in tables: + if tableB in ["audit", "deletedobject", "visualization"]: + continue + if tableB != table: + cur.execute("select uid from "+tableB+";"); + rows = cur.fetchall() + for row in rows: + if row[0] in active_uid: + print ({"id": row[0], "typeA": table, "typeB": tableB},) + + +print("Records inserted successfully") +con.close() + +print (tables["tables"]) From 82ab71583961409341b77deb71bf660b485b63e2 Mon Sep 17 00:00:00 2001 From: idelcano Date: Fri, 5 Feb 2021 10:53:58 +0100 Subject: [PATCH 2/2] remove prints --- DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py b/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py index 09d442d8..c1d169a3 100644 --- a/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py +++ b/DHIS2/find_duplicates_in_db/duplicate_uids_in_db.py @@ -33,7 +33,5 @@ print ({"id": row[0], "typeA": table, "typeB": tableB},) -print("Records inserted successfully") con.close() -print (tables["tables"])